using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.ModelBinding; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Web.Areas.Feljegyzes.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.Feljegyzes.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue )] public class KozossegiSzolgalatokApiController : ApiController { public DataSourceResult GetKozossegiSzolgalatokGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); if (model?.CsoportIdSearch == null) { return new DataSourceResult(); } var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetKozossegiSzolgalatokGrid(model.ConvertModelToCo()); DataSourceResult result = ds.ToDataSourceResult(); return result; } [ApiRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue )] public DataSourceResult GetKozossegiSzolgalatokReszletekGrid(int tanuloId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { bool toroltElemek = !ClaimManager.HasPackage(KretaClaimPackages.Ellenorzo.ClaimValue); bool hasTeljesTorlesJog = toroltElemek && ClaimManager.HasPackage(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue); var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetKozossegiSzolgalatokReszletekForGrid(tanuloId, toroltElemek, hasTeljesTorlesJog); DataSourceResult result = ds.ToDataSourceResult(); return result; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue )] public HttpResponseMessage SaveKozossegiSzolgalat(KozossegiSzolgalatModel model) { ModelState.Merge(model.Validate()); if (ModelState.IsValid) { var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.SaveKozossegiSzolgalat(model.ToCo()); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue )] public HttpResponseMessage DeleteKozossegiSzolgalat(int id) { try { var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.DeleteKozossegiSzolgalat(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (CannotBeDeletedException ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize( KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue, KretaClaimPackages.IsSzirIntezmeny.ClaimValue )] public double GetKozossegiSzolgalatOsszesOraszam(int tanuloId) { try { var helper = new FeljegyzesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); double result = helper.GetKozossegiSzolgalatOsszesOraszam(tanuloId); return result; } catch (CannotBeDeletedException ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message); } } public List GetKozossegiSzolgalatOsztalyList([DataSourceRequest] DataSourceRequest request) { List osztalyList = new List(); if (ClaimManager.HasPackage( KretaClaimPackages.Adminisztrator.ClaimValue , KretaClaimPackages.SzuperOsztalyfonok.ClaimValue , KretaClaimPackages.IsKozossegiSzolgalatKezelo.ClaimValue)) { osztalyList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokForDDL().ToSelectListItemList(); } else { osztalyList = new OsztalyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetOsztalyokForDDL("", ClaimData.FelhasznaloId, ClaimData.IsSzuperOsztalyfonok).ToSelectListItemList(); } return osztalyList; } } }