using System; using System.Collections.Generic; using System.Net; using System.Web.Http; using System.Web.Http.ModelBinding; using System.Web.Http.Results; using Kendo.Mvc; using Kendo.Mvc.Infrastructure; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Classes.ComboBox; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Interfaces; using Kreta.BusinessLogic.Security; using Kreta.BusinessLogic.Utils; using Kreta.Enums; using Kreta.Framework; using Kreta.Framework.Util; using Kreta.Web.Areas.Adatszolgaltatasok.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.Adatszolgaltatasok.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public class TTFApiController : ApiController { private readonly IKozpontiKretaHelper KozpontiKretaHelper; public TTFApiController(IKozpontiKretaHelper kozpontiKretaHelper) { KozpontiKretaHelper = kozpontiKretaHelper ?? throw new ArgumentNullException(nameof(kozpontiKretaHelper)); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public DataSourceResult GetTantargyFelosztasok(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { TantargyFelosztasSearchModel model = JsonConvert.DeserializeObject(data); var helper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); List tantargyIds = model.SearchTantargy.HasValue ? new List { model.SearchTantargy.Value } : null; var dataSet = helper.GetTantargyFelosztasData(model.SearchTanar, model.SearchOsztalyCsoport, tantargyIds, evfolyamId: model.SearchEvfolyam, foglalkozasTipusId: model.SearchFoglalkozasTipusa, feladatellatasiHelyId: model.SearchFeladatellatasihely, oraszam: model.SearchOraszam); var dataSourceResult = dataSet.ToDataSourceResult(); if (dataSourceResult != null && dataSet.Tables.Count == 1) { dataSourceResult.AggregateResults = new List { new AggregateResult(dataSet.Tables[0].ExtendedProperties["Oraszam_SUM"], new SumFunction { SourceField = "Oraszam" }) }; } return dataSourceResult; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public TantargyFelosztasSearchModel Veglegesites() { try { TantargyFelosztasSearchModel model = KozpontiKretaHelper.PostTTFEllenorzes(ClaimData.IntezmenyAzonosito, new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo()); return model; } catch (Exception e) { throw new StatusError( HttpStatusCode.BadRequest, StringResourcesUtil.GetString(4049) /*Hiba történt a művelet közben*/) { UnHandledException = e }; } } [HttpGet] [ApiValidateAjaxAntiForgeryToken] public TantargyFelosztasSearchModel GetStatus() { try { TantargyFelosztasSearchModel model = KozpontiKretaHelper.GetTTFEllenorzes(ClaimData.IntezmenyAzonosito, new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo()); return model; } catch (Exception e) { throw new StatusError( HttpStatusCode.BadRequest, StringResourcesUtil.GetString(4049) /*Hiba történt a művelet közben*/) { UnHandledException = e }; } } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public JsonResult> GetTanar([DataSourceRequest] DataSourceRequest request) { var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var dictionary = helper.GetAlkalmazottNevek(oktatasiAzonositoval: true); var dropdownListItems = new List(); foreach (var item in dictionary) { var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key }; dropdownListItems.Add(sli); } return Json(dropdownListItems); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public JsonResult> GetTanev([DataSourceRequest] DataSourceRequest request) { var helper = new TanevHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var dictionary = helper.GetTanevekForDDL(""); var dropdownListItems = new List(); foreach (var item in dictionary) { var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key }; dropdownListItems.Add(sli); } return Json(dropdownListItems); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public JsonResult> GetEvfolyamok([DataSourceRequest] DataSourceRequest request) { return Json(((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList()); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public JsonResult> GetFoglalkozasTipusok([DataSourceRequest] DataSourceRequest request) { return Json(((int)GeneratedAdatszotarTipusEnum.FoglalkozasTipus).GetItemsByType(ClaimData.SelectedTanevID.Value, true).ToComboBoxItemList()); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public JsonResult> GetFeladatellatasiHelyek([DataSourceRequest] DataSourceRequest request) { var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var dictionary = helper.GetFeladatEllatasiHelyDDl(StringResourcesUtils.GetString(364)); var dropdownListItems = new List(); foreach (var item in dictionary) { var sli = new ComboBoxListItem() { Text = item.Value, Value = item.Key }; dropdownListItems.Add(sli); } return Json(dropdownListItems); } } }