using System; using System.Data; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.ModelBinding; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Enums; using Kreta.Resources; using Kreta.Web.Areas.Tanulo.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Security; using Newtonsoft.Json; namespace Kreta.Web.Areas.Tanulo.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue)] public class CsoportTanuloiApiController : ApiController { public DataSourceResult GetCsoportTanuloiGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); if (!model.OsztalyCsoport.HasValue) { return new DataSourceResult(); } Enum.TryParse(new OsztalyCsoportHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetOsztalyCsoportFeladatKategoria(model.OsztalyCsoport.Value).ToString(), out OktNevelesiKategoriaEnum osztalycsoportKategoria); model.FeladatKategoriaId = (int)osztalycsoportKategoria; var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization)); if (!authorization.IsValidCsoport(model.OsztalyCsoport.Value)) { throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz); } bool? tankozelezett = null; if (model.Tankotelezett.HasValue) { tankozelezett = model.Tankotelezett.Value == 1; } var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; DataSet tanulok = helper.GetTanuloDataSetByOsztalyCsoportId( model.OsztalyCsoport.Value, model.FeladatKategoriaId, model.Nev, model.AnyjaSzuletesiNev, model.SzuletesiHely, model.SzuletesiIdoTol, model.SzuletesiIdoIg, model.OktatasiAzonosito, tankozelezett, model.Tanterv, model.FeladatEllatasiHelyId); return tanulok.ToDataSourceResult(); } } }