using System; using System.Data; using System.Text.RegularExpressions; using System.Web.Http; using System.Web.Http.ModelBinding; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Web.Areas.TanuloErtekeles.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Grid; using Kreta.Web.Security; using Newtonsoft.Json; namespace Kreta.Web.Areas.TanuloErtekeles.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public class DolgozatokApiController : ApiController { public DataSourceResult GetDolgozatokAtlagaGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); model.TanarId = ClaimData.FelhasznaloId; model.SzuperOsztalyfonok = Convert.ToInt32(AuthorizeHelper.CheckPackageAccess(new[] { KretaClaimPackages.SzuperOsztalyfonok.ClaimValue })); model.Datum = DateTime.Now; var searchCo = model.ConvertToCo(); var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); Regex starterRegex = new Regex($"^{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatotArany)} "); Regex innerRegex = new Regex($",{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatotArany)} "); helper.GridParameters.OrderBy = starterRegex.Replace(helper.GridParameters.OrderBy, $"{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatot)} "); helper.GridParameters.OrderBy = innerRegex.Replace(helper.GridParameters.OrderBy, $",{nameof(DolgozatokAtlagaGridModel.IrtakDolgozatot)} "); DataSet dataSet = helper.GetTanuloErtekelesDataSetForGrid(searchCo); return dataSet.ToDataSourceResult(); } public DataSourceResult GetDolgozatReszletekGrid(int osztalyCsoportId, int tantargyId, string ertekelesTemaja, string datum, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var gridParameters = Converter.GridParameter(request); var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = gridParameters; var dataSet = helper.GetDolgozatReszletekDataSetForGrid(osztalyCsoportId, tantargyId, ertekelesTemaja, DateTime.Parse(datum)); return dataSet.ToDataSourceResult(); } } }