using System; using System.Collections.Generic; using System.Data; using System.Net; using System.Net.Http; using System.Web.Http; using Kendo.Mvc.UI; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Enums.ManualEnums; using Kreta.Resources; using Kreta.Web.Areas.TanuloErtekeles.Models.TanuloErtekeles; 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.TanuloErtekeles.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.TanarAdhatMagatartasSzorgalomJegyet.ClaimValue)] public class MagatartasSzorgalomApiController : BaseTanuloErtekelesApiController { public DataSourceResult GetMagatartasSzorgalomGrid(string data, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); int? osztalyCsoportId = model.OsztalyCsoportIdSearch; if (!osztalyCsoportId.IsEntityId()) { return new DataSourceResult(); } var helper = new TanuloErtekelesHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; DataSet dataSet = helper.GetTanuloErtekelesDataSetByMagatartasSzorgalomForGrid(ClaimData.FelhasznaloId, osztalyCsoportId.Value, model.Datum); return dataSet.ToDataSourceResult(); } public DataSourceResult GetMagatartasSzorgalomDetailGrid(int tanuloId, DateTime? datum, int feladatKategoriaId, [System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var gridParameters = Converter.GridParameter(request); DataSet dataSet = GetDetailGridDataBase(tanuloId, null, true, datum, (int)ErtekelesMegjelenesFajtaEnum.MagatartasSzorgalom, feladatKategoriaId: feladatKategoriaId, gridParameters: gridParameters); return dataSet.ToDataSourceResult(); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage Save(MagatartasSzorgalomListSaveModel model) { List tanuloErtekelesCoList = model.ToCoList(); HttpResponseMessage result = SaveTanuloErtekelesList(Request, tanuloErtekelesCoList); return result; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage Edit(MagatartasSzorgalomEditModel model) { int id = model.IdEdit; var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization)); if (!authorization.IsValidMagatartasSzorgalom(id)) { throw new StatusError(HttpStatusCode.Forbidden, ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz); } var tanuloErtekelesCoList = new List { model.ToCo() }; HttpResponseMessage result = SaveTanuloErtekelesList(Request, tanuloErtekelesCoList); return result; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage Delete([FromBody] int id) { var authorization = (IKretaAuthorization)Request.GetDependencyScope().GetService(typeof(IKretaAuthorization)); bool isValid = authorization.IsValidMagatartasSzorgalom(id); HttpResponseMessage result = DeleteTanuloErtekeles(id, isValid); return result; } } }