using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.ModelBinding; using System.Web.Http.Results; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Logic; using Kreta.BusinessLogic.Security; using Kreta.Core; using Kreta.Core.Exceptions; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework.Entities; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.Tanulo.Helper; using Kreta.Web.Areas.Tanulo.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Models; using Kreta.Web.Security; using Newtonsoft.Json; using SDA.DataProvider; namespace Kreta.Web.Areas.Tanulo.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.AMImodul.ClaimValue)] public class AmiTanuloApiController : ApiController { [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)] public DataSourceResult GetTanuloGrid(string data, DataSourceRequest request) { var (gridParameter, modelList) = GetGridData(data, request); return modelList.ToDataSourceResult(gridParameter); } public HttpResponseMessage GetExport(string data, DataSourceRequest request) { try { var (gridParameter, modelList) = GetGridData(data, request); modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary); var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(TanuloGridModel.TanuloExportAttributeId); var memoryStream = SimpleExportLogic.GetExport(TanuloResource.TanuloExportSheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value); return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), $"{TanuloResource.TanuloExportFileName}.xlsx"); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex }; } } private (GridParameters gridParameter, List modelList) GetGridData(string data, DataSourceRequest request) { data = data.Replace("_", string.Empty); var model = JsonConvert.DeserializeObject(data); var co = model.ConvertModelToCo(ConnectionTypeExtensions.GetSessionConnectionType(), ClaimData.IsActivTanev); co.LekerdezesNapja = DateTime.Today; co.FeladatKategoriaId = (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas; var gridParameter = Converter.GridParameter(request); var coList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloItemCoList(co); var modelList = new List(); foreach (var item in coList) { var gridModel = new TanuloGridModel(item); modelList.Add(gridModel); } return (gridParameter, modelList); } #region Növendék mentés/módosítás/törlés [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.IsLEPKezelo.ClaimValue)] public HttpResponseMessage DeleteJogviszonySzuneteltetes(JogviszonySzuneteltetesDeleteModel model) { try { if (model.IsJogviszonySzuneteltetese && model.GridCnt == 1) throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.JogviszonySzunetLegalabbEgyIdoszakKotelezo); var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.DeleteJogviszonySzuneteltetes(model.Id.Value); return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveJogviszonySzuneteltetes(JogviszonySzuneteltetesModel model) { try { if (model.JogviszonySzuneteltetesKezdete.Value > model.JogviszonySzuneteltetesVege.Value) ModelState.AddModelError("JogviszonySzuneteltetes1", ErrorResource.JogviszonySzuneteltetes); var tanevHelper = new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanevData = tanevHelper.GetTanevInfo(); if (model.JogviszonySzuneteltetesKezdete.Value < tanevData.KezdoNap) ModelState.AddModelError("JogviszonySzuneteltetes2", ErrorResource.JogviszonySzuneteltetesKezdeteTanevben); if (model.JogviszonySzuneteltetesVege.Value > tanevData.UtolsoNap) ModelState.AddModelError("JogviszonySzuneteltetes3", ErrorResource.JogviszonySzuneteltetesVegeTanevben); if (ModelState.IsValid) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.SaveJogviszonySzuneteltetes(model.TanuloId.Value, model.OsztalyId, model.JogviszonySzuneteltetesKezdete.Value, model.JogviszonySzuneteltetesVege.Value, ClaimData.KovTanevID); return Request.CreateResponse(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (Exception e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTanulo(TanuloModel model) { try { var felhasznaloiNevGeneralasModja = TanuloLogic.GetFelhasznaloiNevGeneralasModja(model); TanuloLogic.TanuloCustomValidation(ModelState, model, felhasznaloiNevGeneralasModja, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas); if (ModelState.IsValid) { var response = TanuloLogic.TanuloMentese(model, felhasznaloiNevGeneralasModja); return Request.CreateResponse(HttpStatusCode.OK, response); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (Check4TValidacioExistsException) { throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznaloiAdatokkalMarLetezikFelhasznalo); } } public HttpResponseMessage SaveData(TanuloTobbesModModel model) { TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model); if (ModelState.IsValid) return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model); return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } public HttpResponseMessage PreValidation(TanuloTobbesModModel model) { TanuloLogic.TanuloTobbesModCustomValidation(ModelState, model); if (ModelState.IsValid) { string warningMessage = TanuloLogic.ValidateOnSaveData(model); if (!string.IsNullOrWhiteSpace(warningMessage)) { return Request.CreateResponse(HttpStatusCode.BadRequest, warningMessage); } return TanuloLogic.SaveData(ClaimData.SelectedTanevID.Value, model); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } #endregion Növendék mentés/módosítás/törlés #region Generálás public HttpResponseMessage JelszoGeneralas(int userId, bool isGondviselo) { var result = TanuloLogic.JelszoGeneralas(userId, isGondviselo); return Request.CreateResponse(HttpStatusCode.OK, result); } public System.Web.Mvc.JsonResult FelhasznalonevGeneralas([FromBody] FelhasznalonevGeneralasModel felhasznalonevGeneralasModel) { try { var result = new System.Web.Mvc.JsonResult { Data = TanuloLogic.FelhasznalonevGeneralas(felhasznalonevGeneralasModel) }; return result; } catch (UniqueKeyViolationException) { throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik); } catch (UserNameExistsException) { throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznalonevMarLetezik); } } #endregion #region Növendék elérhetőség mentés/módosítás/törlés public CimElerhetosegModel GetTanuloElerhetosegTel(int id) { var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegTelById(id); return CimElerhetosegModel.ConvertCoToModel(co); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveElerhetosegTel(CimElerhetosegModel model) { Kreta.Web.Classes.Utils.TelefonSzamValidation(ModelState, model.Telefon, model.TelefonTipus, TelefonszamTulajdonosEnum.Tanulo); if (ModelState.IsValid) { try { var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegTelCO(model); new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegTelMentese(co, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } catch (BlException ex) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message); } } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteElerhetosegTel([FromBody] int id) { try { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.TanuloElerhetosegTelTorlese(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException ex) { var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Telefonszam, ex.ConnectionErrorMessage); throw new StatusError(HttpStatusCode.BadRequest, uzenet); } } public CimElerhetosegModel GetTanuloElerhetosegEmail(int id) { var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloElerhetosegEmailById(id); return CimElerhetosegModel.ConvertCoToModel(co); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveElerhetosegEmail(CimElerhetosegModel model) { if (ModelState.IsValid) { try { var co = CimElerhetosegModel.ConvertModelToTanuloElerhetosegEmailCO(model); new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloElerhetosegEmailMentese(co, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } catch (BlException ex) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message); } } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteElerhetosegEmail([FromBody] int id) { try { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.TanuloElerhetosegEmailTorlese(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException ex) { var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.EmailCim, ex.ConnectionErrorMessage); throw new StatusError(HttpStatusCode.BadRequest, uzenet); } } public CimElerhetosegModel GetTanuloElerhetosegCim(int id) { var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id); return CimElerhetosegModel.ConvertCoToModel(co); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveElerhetosegCim(CimElerhetosegModel model) { if (ModelState.IsValid) { try { var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model); new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloCimMentese(co, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteElerhetosegCim([FromBody] int id) { try { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.TanuloGondviseloCimTorlese(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException ex) { var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage); throw new StatusError(HttpStatusCode.BadRequest, uzenet); } } #endregion Növendék elérhetőség mentés/módosítás/törlés #region Gondviselő mentés/módosítás/törlés public TanuloModGondviseloModel GetTanuloGondviselo(int id) { var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloById(id); return TanuloModGondviseloModel.ConvertCoToModel(co); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveGondviselo(TanuloModGondviseloModel model) { try { TanuloLogic.TanuloGondviseloSaveValidation(ModelState, model); if (!ModelState.IsValid) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); var co = TanuloModGondviseloModel.ConvertModelToCo(model); var belepesList = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).TanuloGondviseloMentese(co, ClaimData.IsSzirIntezmeny, ClaimData.KovTanevID); var fileString = TanuloLogic.GondviseloFileGenerate(model.FileLetoltesSzukseges, belepesList); var response = new { EmailErrors = belepesList.EmailErrors, FileString = fileString }; return Request.CreateResponse(HttpStatusCode.OK, response); } catch (BlException ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message) { UnHandledException = ex.InnerException }; } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteGondviselo([FromBody] int id) { try { return TanuloLogic.DeleteTanulogondviselo(id); } catch (EntityDeleteFailedException ex) { var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Gondviselo, ex.ConnectionErrorMessage); throw new StatusError(HttpStatusCode.BadRequest, uzenet); } } #endregion Gondviselő mentés/módosítás/törlés #region Gondviselő elérhetőség mentés/módosítás/törlés [HttpPost] [ApiValidateAjaxAntiForgeryToken] public CimElerhetosegModel GetGondviseloElerhetosegCim(int id) { var co = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTanuloGondviseloCimById(id); return CimElerhetosegModel.ConvertCoToModel(co); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveGondviseloCim(CimElerhetosegModel model) { try { var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var customModelState = TanuloLogic.CheckGondviseloCimCustomValidation(ModelState, model); if (model.TanulovalEgyezik) { var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model); helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } if (customModelState.IsValid) { var co = CimElerhetosegModel.ConvertModelToElerhetosegCimCO(model); helper.TanuloGondviseloCimMentese(co, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, customModelState); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteGondviseloCim([FromBody] int id) { try { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.TanuloGondviseloCimTorlese(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException ex) { var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, TanuloResource.Cim, ex.ConnectionErrorMessage); throw new StatusError(HttpStatusCode.BadRequest, uzenet); } } #endregion Gondviselő elérhetőség mentés/módosítás/törlés #region GridHelpers public DataSourceResult GetOsztalyCsoportGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var model = JsonConvert.DeserializeObject(data); var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetOsztalyCsoport(model.TanuloId, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas, !model.MegNemAktivOsztalyok); return ds.ToDataSourceResult(); } public DataSourceResult GetTanultTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var tanuloId = SDAConvert.ToNullableInt32(id); DataSourceResult result = tanuloId.IsEntityId() ? helper.GetTanultTantargyak(tanuloId.Value, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).ToDataSourceResult() : new DataSourceResult(); return result; } public DataSourceResult GetTanarokTantargyakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetTanarokTantargyak(int.Parse(id)); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetGondviselokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetGondviselok(int.Parse(id), true); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetGondviselokCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetGondviseloCimek(int.Parse(id)); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetGondviselokCimDetailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetGondviseloCimekByGondviselo(int.Parse(id)); return ds.ToDataSourceResult(); } public DataSourceResult GetOrarendiOrakGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetOrarendiOrak(int.Parse(id)); return ds.ToDataSourceResult(); } public DataSourceResult GetErtekelesekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetErtekelesek(int.Parse(id), (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas); return ds.ToDataSourceResult(); } public DataSourceResult GetMulasztasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetMulasztasok(int.Parse(id), (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas); return ds.ToDataSourceResult(); } public DataSourceResult GetIgazolasokGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var tanuloId = SDAConvert.ToNullableInt32(id); DataSourceResult result = tanuloId.IsEntityId() ? helper.GetIgazolasok(tanuloId.Value, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).ToDataSourceResult() : new DataSourceResult(); return result; } public DataSourceResult GetFeljegyzesekHaviGrid(string id, string osztalycsoportId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var tanuloId = SDAConvert.ToNullableInt32(id); var osztalyId = SDAConvert.ToNullableInt32(osztalycsoportId); DataSourceResult result = tanuloId.IsEntityId() && osztalyId.IsEntityId() ? helper.GetFeljegyzesekHavi(tanuloId.Value, osztalyId.Value).ToDataSourceResult() : new DataSourceResult(); return result; } public DataSourceResult GetElozmenyekGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetElozmenyek(int.Parse(id), (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetCim(int.Parse(id)); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetTelefonSzam(int.Parse(id)); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetEmails(int.Parse(id)); return ds.ToDataSourceResult(); } public DataSourceResult GetGondviseloUtolsoBelepesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetGondviseloUtolsoBelepes(int.Parse(id)); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.FelhasznaloMunkakoreNemTiltoListas.ClaimValue)] public DataSourceResult GetJogviszonySzuneteltetesGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var tanuloId = SDAConvert.ToNullableInt32(id); DataSourceResult result = tanuloId.IsEntityId() ? helper.GetJogviszonySzuneteltetes(tanuloId.Value, (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).ToDataSourceResult() : new DataSourceResult(); return result; } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.CsoportVezeto.ClaimValue, KretaClaimPackages.Tanar.ClaimValue)] public DataSourceResult GetJogviszonyGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new TanuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var co = helper.GetJogviszony(int.Parse(id)); return co.ToDataSourceResult(Converter.GridParameter(request)); } #endregion GridHelpers #region Export [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)] public JsonResult> GetExportColumnsTanulokLakcimmel() { return Json(TanuloLogic.GetColumnsTanulokLakcimmel()); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)] public JsonResult> GetExportColumns() { return Json(TanuloLogic.GetColumnsforExport()); } [ApiRolePackageAuthorize(KretaClaimPackages.AMImodul.ClaimValue)] public DataSourceResult GetTanuloExportGrid(string searchFilter, string sortColumn, string sortDir) { return TanuloLogic.GetDataSetTanuloExport(searchFilter, sortColumn, sortDir).ToDataSourceResult(); } #endregion Export #region Tantárgy felosztas mentés/módosítás/törlés [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)] public DataSourceResult GetTanuloCsoportosFoglalkozasai(int tanuloId, int osztalyId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var ds = helper.GetTanuloCsoportosFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Osztalyfonok.ClaimValue, KretaClaimPackages.SzuperOsztalyfonok.ClaimValue, KretaClaimPackages.Evfolyamfelelos.ClaimValue, KretaClaimPackages.AMImodul.ClaimValue, KretaClaimPackages.Naplo.ClaimValue)] public DataSourceResult GetTanuloEgyeniFoglalkozasai(int tanuloId, int osztalyId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var ds = helper.GetTanuloEgyeniFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas); return ds.ToDataSourceResult(); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage ValidateTantargyfelosztas(List model) { AmiTanuloLogic.ValidateTanuloTantargyaiModel(model); return Request.CreateResponse(HttpStatusCode.OK, model, Configuration.Formatters.JsonFormatter); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTantargyfelosztas(SaveTanuloTantargyaiModel list) { var osztalyId = list.OsztalyId; var model = list.TanuloTantargyak; var tanuloId = list.TanuloId; var tantargyHelper = new TantargyHelper(ConnectionTypeExtensions.GetSessionConnectionType()); foreach (var m in model) { if (!m.TantargyID.HasValue && m.AmiTantargyID.HasValue) { (int? tantargyId, int? amiTantargyId, string tantargyNev) = tantargyHelper.GetTantargyAMISablonhoz(m.AmiTantargyID.Value); if (tantargyId.HasValue) { m.TantargyID = tantargyId; if (!amiTantargyId.HasValue || amiTantargyId.Value != m.AmiTantargyID.Value) { tantargyHelper.UpdateAMITantargySablonId(tantargyId.Value, m.AmiTantargyID.Value); } } else { var ujTantargyId = tantargyHelper.CreateAMITantargy(m.AmiTantargyID.Value, tantargyNev); m.TantargyID = ujTantargyId; } } } var csoportos = model.Where(x => x.IsCsoportos); var foglalkozasIdsInGrid = csoportos.Where(x => x.AmiFoglalkozasID.HasValue && x.AmiFoglalkozasID.Value > 0) .Select(x => x.AmiFoglalkozasID.Value); var foglakozasIdsInDB = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloCsoportosFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).Tables[0].AsEnumerable() .Where(x => x.Field("AmiFoglalkozasID").HasValue && x.Field("AmiFoglalkozasID").Value > 0 ).Select(x => x.Field("AmiFoglalkozasID").Value); var torlendoCsoportosIds = foglakozasIdsInDB.Except(foglalkozasIdsInGrid).Distinct(); var tantargyFelosztasHelper = new TantargyFelosztasHelper(ConnectionTypeExtensions.GetSessionConnectionType()); foreach (var id in torlendoCsoportosIds) { tantargyFelosztasHelper.DeleteFoglalkozasAmiTanulo(id); } foreach (var cs in csoportos) { if (!int.TryParse(cs.ID, out int id)) { var foglalkozasId = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveFoglalkozas(cs.TantargyID.Value, cs.OsztalyId.Value, cs.TanarID.Value, cs.Oraszam, cs.OsszevontOra_BOOL); cs.ID = foglalkozasId.ToString(); } //csak akkor mentünk amifoglalkozást, ha mindent megadott if (cs.AmiFotargy.IsEntityId() && cs.AmiTagozat.IsEntityId() && cs.AmiTantargyKotelezoseg.IsEntityId() || cs.AmiTantargyKotelezoseg.IsEntityId()) { tantargyFelosztasHelper.InsertOrUpdateFoglalkozasAmiTanulo(cs.ToCo()); } } var egyeni = model.Where(x => !x.IsCsoportos); var idsInGrid = egyeni.Select(x => int.TryParse(x.ID, out int id) ? id : (int?)null) .Where(x => x.HasValue && x.Value > 0).Select(x => x.Value); var idsInDB = new FoglalkozasHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanuloEgyeniFoglalkozasai(tanuloId, osztalyId, OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas).Tables[0].AsEnumerable() .Select(x => x.Field("ID")); var torlendoEgyeniIds = idsInDB.Except(idsInGrid).Distinct(); foreach (var id in torlendoEgyeniIds) { tantargyFelosztasHelper.DeleteTargyFelosztas(id); } foreach (var e in egyeni) { tantargyFelosztasHelper.CreateOrUpdateEgyeniTantargyFelosztasForAMI(e.ToCo()); } return Request.CreateResponse(HttpStatusCode.OK); } #endregion Tantárgy felosztas mentés/módosítás/törlés [HttpGet] public JsonResult HasGondviseloAlapertelmezettCim(int gondviseloId) { var tanuloHelper = new TanuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var letezikGondviseloAlapertelmezettCim = tanuloHelper.HasGondviseloAlapertelmezettCim(gondviseloId); return Json(letezikGondviseloAlapertelmezettCim); } } }