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 Kendo.Mvc.Extensions; using Kendo.Mvc.UI; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Logic; using Kreta.BusinessLogic.Security; using Kreta.BusinessLogic.Validation; using Kreta.Client.Leltar; using Kreta.Core; using Kreta.Core.Exceptions; using Kreta.Core.FeatureToggle; using Kreta.Enums; using Kreta.Framework; using Kreta.Framework.Entities; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.Alkalmazott.ModelInterface; using Kreta.Web.Areas.Alkalmazott.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Security; namespace Kreta.Web.Areas.Alkalmazott.ApiControllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public class AlkalmazottApiController : BaseAlkalmazottApiController { public AlkalmazottApiController(ILeltarClient leltarClient) : base(leltarClient) { } public BetoltetlenAllashelyModel CreateNewBetoltetlenAllashelyModel() { var intezmenyCo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok(); var elotag = "[" + AlkalmazottResource.BTA + " " + (new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetBetoltetlenAllashelyekSzama() + 1).ToString() + "]"; var model = new BetoltetlenAllashelyModel() { NemList = Helpers.AlkalmazottViewHelper.GetNemList().Where(x => x.Value == 4.ToString() || x.Value == 5.ToString()).ToList(), //IgazolvanyTipus = (int?)Enums.IgazolvanyTipusEnum.Szemelyi_igazolvany, NevEloTag = elotag, MunkavallaloCsaladiNev = AlkalmazottResource.Betoltetlen, SzuletesiCsaladiNev = AlkalmazottResource.Betoltetlen, AnyjaCsaladiNeve = AlkalmazottResource.Betoltetlen, MunkavallaloUtonev = AlkalmazottResource.Allashely, SzuletesiUtonev = AlkalmazottResource.Allashely, AnyjaUtoneve = elotag, SzuletesiIdo = new DateTime(1950, 01, 01), SzuletesiHely = AlkalmazottResource.Ismeretlen, Nem = (int)NemEnum.Ferfi, Cim = AlkalmazottResource.Ismeretlen, Iranyitoszam = intezmenyCo.Iranyitoszam, Varos = intezmenyCo.Varos, KotelezoOraszam = 22, MunkaKor = (int)MunkakorTipusEnum.na, FoglalkoztatasiJogviszony = (int)MunkaviszonyTipusEnum.na, BetoltetlenAllashely = true }; return model; } public HitoktatoModel CreateNewHitoktatoModel() { var intezmenyCo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok(); var elotag = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSpecialisAlkalmazottakNevEloTag(AlkalmazottResource.HitoktatoRovid); var model = new HitoktatoModel() { NemList = Helpers.AlkalmazottViewHelper.GetNemList().Where(x => x.Value == 4.ToString() || x.Value == 5.ToString()).ToList(), //IgazolvanyTipus = (int?)Enums.IgazolvanyTipusEnum.Szemelyi_igazolvany, NevEloTag = elotag, MunkavallaloCsaladiNev = AlkalmazottResource.Hittan, SzuletesiCsaladiNev = AlkalmazottResource.Hittan, AnyjaCsaladiNeve = AlkalmazottResource.Hittan, MunkavallaloUtonev = AlkalmazottResource.Oktato, SzuletesiUtonev = AlkalmazottResource.Oktato, AnyjaUtoneve = elotag, SzuletesiIdo = new DateTime(1950, 01, 01), SzuletesiHely = AlkalmazottResource.Ismeretlen, Nem = (int)Enums.NemEnum.Ferfi, Cim = AlkalmazottResource.Ismeretlen, Iranyitoszam = intezmenyCo.Iranyitoszam, Varos = intezmenyCo.Varos, KotelezoOraszam = 22, MunkaKor = (int)Enums.MunkakorTipusEnum.Hittanoktato, FoglalkoztatasiJogviszony = (int)Enums.MunkaviszonyTipusEnum.na }; return model; } public KulsosAlkalmazottModel CreateNewKulsosAlkalmazottModel() { var intezmenyCo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok(); var elotag = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSpecialisAlkalmazottakNevEloTag(AlkalmazottResource.KulsosRovid); var model = new KulsosAlkalmazottModel() { NemList = Helpers.AlkalmazottViewHelper.GetNemList().Where(x => x.Value == 4.ToString() || x.Value == 5.ToString()).ToList(), NevEloTag = elotag, MunkavallaloCsaladiNev = AlkalmazottResource.KulsosCsaladNev, SzuletesiCsaladiNev = AlkalmazottResource.KulsosCsaladNev, AnyjaCsaladiNeve = AlkalmazottResource.KulsosCsaladNev, MunkavallaloUtonev = AlkalmazottResource.KulsosUtoNev, SzuletesiUtonev = AlkalmazottResource.KulsosUtoNev, AnyjaUtoneve = elotag, SzuletesiIdo = new DateTime(1950, 01, 01), SzuletesiHely = AlkalmazottResource.Ismeretlen, Nem = (int)NemEnum.Ferfi, Cim = AlkalmazottResource.Ismeretlen, Iranyitoszam = intezmenyCo.Iranyitoszam, Varos = intezmenyCo.Varos, KotelezoOraszam = 22, MunkaKor = (int)MunkakorTipusEnum.na, FoglalkoztatasiJogviszony = (int)MunkaviszonyTipusEnum.na }; return model; } public KulsoGyakorlatiAllashelyModel CreateNewKulsoGyakorlatiAllashelyModel() { var intezmenyCo = new IntezmenyHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetIntezmenyiAdatok(); var elotag = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetSpecialisAlkalmazottakNevEloTag(AlkalmazottResource.KulsoGyakorlatiRovid); var model = new KulsoGyakorlatiAllashelyModel() { NemList = Helpers.AlkalmazottViewHelper.GetNemList().Where(x => x.Value == 4.ToString() || x.Value == 5.ToString()).ToList(), NevEloTag = elotag, MunkavallaloCsaladiNev = AlkalmazottResource.KulsoGyakorlatiCsaladNev, SzuletesiCsaladiNev = AlkalmazottResource.KulsoGyakorlatiCsaladNev, AnyjaCsaladiNeve = AlkalmazottResource.KulsoGyakorlatiCsaladNev, MunkavallaloUtonev = AlkalmazottResource.KulsoGyakorlatiUtoNev, SzuletesiUtonev = AlkalmazottResource.KulsoGyakorlatiUtoNev, AnyjaUtoneve = elotag, SzuletesiIdo = new DateTime(1950, 01, 01), SzuletesiHely = AlkalmazottResource.Ismeretlen, Nem = (int)NemEnum.Ferfi, Cim = AlkalmazottResource.Ismeretlen, Iranyitoszam = intezmenyCo.Iranyitoszam, Varos = intezmenyCo.Varos, KotelezoOraszam = 22, MunkaKor = (int)MunkakorTipusEnum.KulsoGyakorlatiHely, FoglalkoztatasiJogviszony = (int)MunkaviszonyTipusEnum.na, }; return model; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveBetoltetlenAllashely(BetoltetlenAllashelyModel model) { AlterAlkalmazottCustomValidation(model); if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var co = new TanarAdatCO() { Nem = model.Nem, NevElotag = model.NevEloTag, Elotag = model.NevEloTag, SzuletesiNevElotag = model.NevEloTag, SzuletesiCsaladiNev = model.SzuletesiCsaladiNev, SzuletesiUtonev = model.SzuletesiUtonev, AnyjaCsaladiNeve = model.AnyjaCsaladiNeve, AnyjaUtoneve = model.NevEloTag, MunkavallaloCsaladiNev = model.MunkavallaloCsaladiNev, MunkavallaloUtonev = model.MunkavallaloUtonev, FeladatellatasiHely = model.FeladatellatasiHely.Value, Oraszam = model.KotelezoOraszam, SzuletesiHely = model.SzuletesiHely, SzuletesiIdo = model.SzuletesiIdo.Value, MunkaKor = model.MunkaKor, //SzabadAllashely = model.SzabadAllashely, FoglalkoztatasiJogviszony = model.FoglalkoztatasiJogviszony, BetoltetlenAllashely = model.BetoltetlenAllashely, Iranyitoszam = model.Iranyitoszam, HelysegNeve = model.Varos, KozteruletNeve = model.Cim, Hazszam = "1", VezetoiOraszamOka = (int)VezetoiOraszamokTipusEnum.Nincs }; var h = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); h.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev); return new HttpResponseMessage(HttpStatusCode.OK); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public PedagogusEletpalyamodellModel GetPedagogusEletpalyamodell(int id) { var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var tanarEletpalyaModellCO = helper.GetPedagogusEletpalyaModellAdatai(id); var model = Helpers.AlkalmazottViewHelper.ConvertCOToModel(tanarEletpalyaModellCO); return model; } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public VegzettsegModel GetVegzettsegek(int id) { var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var tanarVegzettsegekCO = helper.GetVegzettsegekModelAdatai(id); var model = Helpers.AlkalmazottViewHelper.ConvertCOToModel(tanarVegzettsegekCO); return model; } public TovabbiMunkaugyiAdatokModel GetTovabbiMunkaugyiAdatok(int id) { var tovabbiMunkaugyiAdatokCO = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTovabbiMunkaugyiAdatokAdatai(id); var model = Helpers.AlkalmazottViewHelper.ConvertCOToModel(tovabbiMunkaugyiAdatokCO); return model; } public InfoTovabbiMunkaugyiAdatokPopUpModel GetTovabbiMunkaugyiAdatokAdataiForInfoWindow(int id) { var infoTovabbiMunkaugyiAdatokPopUpCO = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetTovabbiMunkaugyiAdatokAdataiForInfoWindow(id); var model = Helpers.AlkalmazottViewHelper.ConvertCOToModel(infoTovabbiMunkaugyiAdatokPopUpCO); return model; } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SavePedagogusEletpalyamodell(PedagogusEletpalyamodellModel model) { try { if (ModelState.IsValid) { var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanarEletpalyaModellCO = Helpers.AlkalmazottViewHelper.ConvertModelToCO(model); helper.CreateOrUpdateEletpalyaModell(tanarEletpalyaModellCO); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (BlException e) { var error = new StatusError(HttpStatusCode.BadRequest, e.Message); throw error; } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeletePedagogusEletpalyamodell([FromBody] int Id) { try { new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteEletpalyaModell(Id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException) { throw new StatusError(HttpStatusCode.BadRequest, string.Format(StringResourcesUtil.GetString(5490), StringResourcesUtil.GetString(3495)/*, e.ConnectionErrorMessage*/) /*A(z) alkalmazott nem törölhető, mert egy vagy több kapcsolódása van (kapcsolatok: {1})!*/); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveVegzettseg(VegzettsegModel model) { try { if (ModelState.IsValid) { var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var tanarVegzettsegCO = Helpers.AlkalmazottViewHelper.ConvertModelToCO(model); helper.CreateOrUpdateVegzettseg(tanarVegzettsegCO); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (BlException e) { var error = new StatusError(HttpStatusCode.BadRequest, e.Message); throw error; } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteVegzettseg([FromBody] int Id) { try { new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteVegzettseg(Id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException) { throw new StatusError(HttpStatusCode.BadRequest, string.Format(StringResourcesUtil.GetString(5490), StringResourcesUtil.GetString(3495)/*, e.ConnectionErrorMessage*/) /*A(z) alkalmazott nem törölhető, mert egy vagy több kapcsolódása van (kapcsolatok: {1})!*/); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteTovabbiMunkaugyiAdatok([FromBody] int Id) { try { new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).DeleteTovabbiMunkaugyiAdatok(Id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException) { throw new StatusError(HttpStatusCode.BadRequest, string.Format(StringResourcesUtil.GetString(5490), StringResourcesUtil.GetString(3495)/*, e.ConnectionErrorMessage*/) /*A(z) alkalmazott nem törölhető, mert egy vagy több kapcsolódása van (kapcsolatok: {1})!*/); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTovabbiMunkaugyiAdatok(TovabbiMunkaugyiAdatokModel model) { try { if (!model.VezetoiOraszamOka.IsEntityId()) { var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny; ModelState.AddModelError(nameof(model.VezetoiOraszamOka), isNszfhUjSzkt ? ErrorResource.VezetoiMegbizasMegadasaKotelezo : ErrorResource.VezetoiOraszamOkaMegadasaKotelezo); } if (ModelState.IsValid) { var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext)); var isKlebelsbergKozpontOrNSZFH = featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokKlebelsberg) || featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokNSZFH); var tovabbiMunkaugyiAdatokCO = Helpers.AlkalmazottViewHelper.ConvertModelToCO(model); var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny; var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.CreateOrUpdateTovabbiMunkaugyiAdatok(tovabbiMunkaugyiAdatokCO, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (BlException e) { var error = new StatusError(HttpStatusCode.BadRequest, e.Message); throw error; } } #region Pedagógus életpályamodell tab [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetPedagogusEletpalyamodellGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var (gridParameter, modelList, alkalmazottNev) = GetPedagogusEletpalyamodellGridData(id, request); return modelList.ToDataSourceResult(gridParameter); } public HttpResponseMessage GetExportPedagogusEletpalyamodellGrid(int id, DataSourceRequest request) { try { var (gridParameter, modelList, alkalmazottNev) = GetPedagogusEletpalyamodellGridData(id, request); return GetPedagogusEletpalyamodellExportFile(gridParameter, modelList, AdatszolgaltatasokResource.PedagogusEletpalyamodellExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.PedagogusEletpalyamodellExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex }; } } private HttpResponseMessage GetPedagogusEletpalyamodellExportFile(GridParameters gridParameter, List modelList, string worksheetName, string fileName, int tanevId) { var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary); var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(AlkalmazottInfoModel.PedagogusEletpalyamodellModel.PedagogusEletpalyamodellExportAttributeId); var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId); return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName); } private (GridParameters gridParameter, List modelList, string alkalmazottNev) GetPedagogusEletpalyamodellGridData(int id, DataSourceRequest request) { var gridParameter = Converter.GridParameter(request); var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var coList = helper.GetPedagogusEletpalyamodellCoList(id); var modelList = new List(); foreach (var co in coList) { var gridModel = new AlkalmazottInfoModel.PedagogusEletpalyamodellModel(co); modelList.Add(gridModel); } return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev); } #endregion #region Végzettség tab [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetVegzettsegGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var (gridParameter, modelList, alkalmazottNev) = GetVegzettsegGridData(id, request); return modelList.ToDataSourceResult(gridParameter); } public HttpResponseMessage GetExportVegzettsegGrid(int id, DataSourceRequest request) { try { var (gridParameter, modelList, alkalmazottNev) = GetVegzettsegGridData(id, request); return GetVegzettsegExportFile(gridParameter, modelList, AdatszolgaltatasokResource.VegzettsegExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.VegzettsegExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex }; } } private HttpResponseMessage GetVegzettsegExportFile(GridParameters gridParameter, List modelList, string worksheetName, string fileName, int tanevId) { var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary); var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(AlkalmazottInfoModel.VegzettsegModel.VegzettsegExportAttributeId); var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId); return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName); } private (GridParameters gridParameter, List modelList, string alkalmazottNev) GetVegzettsegGridData(int id, DataSourceRequest request) { var gridParameter = Converter.GridParameter(request); var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var coList = helper.GetVegzettsegCoLst(id); var modelList = new List(); foreach (var co in coList) { var gridModel = new AlkalmazottInfoModel.VegzettsegModel(co); modelList.Add(gridModel); } return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev); } #endregion [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetKKVegzettsegMainGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetKKMainGridVegzettsegek(id); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetKKVegzettsegDetailGrid(int id, KKKepesitesJellTipusEnum? tipus, int alkalmazottId, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (tipus == KKKepesitesJellTipusEnum.Tanar) { helper.GridParameters = Converter.GridParameter(request); var tanarDs = helper.GetKKTanarTerulet(id); return tanarDs.ToDataSourceResult(); } if (tipus == KKKepesitesJellTipusEnum.TanarAMI) { helper.GridParameters = Converter.GridParameter(request); var tanarDs = helper.GetKKAmiTanarTerulet(id); return tanarDs.ToDataSourceResult(); } if (tipus == KKKepesitesJellTipusEnum.Tanito) { helper.GridParameters = Converter.GridParameter(request); var tanarDs = helper.GetKKTanitoTerulet(alkalmazottId); return tanarDs.ToDataSourceResult(); } if (tipus == KKKepesitesJellTipusEnum.Gyogypedagogus) { helper.GridParameters = Converter.GridParameter(request); var tanarDs = helper.GetKKGyogypedTerulet(alkalmazottId); return tanarDs.ToDataSourceResult(); } helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetKKKepesitesTerulet(); return ds.ToDataSourceResult(); } [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetTovabbiMunkaugyiAdatokGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = Converter.GridParameter(request); var ds = helper.GetTovabbiMunkaugyiAdatokGrid(id); return ds.ToDataSourceResult(); } #region Eszköz tab [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetEszkozGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var (gridParameter, modelList, alkalmazottNev) = GetEszkozGridData(id, request); return modelList.ToDataSourceResult(gridParameter); } public HttpResponseMessage GetExportEszkozGrid(int id, DataSourceRequest request) { try { var (gridParameter, modelList, alkalmazottNev) = GetEszkozGridData(id, request); return GetEszkozExportFile(gridParameter, modelList, AdatszolgaltatasokResource.EszkozExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.EszkozExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex }; } } private HttpResponseMessage GetEszkozExportFile(GridParameters gridParameter, List modelList, string worksheetName, string fileName, int tanevId) { var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary); var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(AlkalmazottInfoModel.EszkozModel.EszkozExportAttributeId); var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId); return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName); } private (GridParameters gridParameter, List modelList, string alkalmazottNev) GetEszkozGridData(int id, DataSourceRequest request) { var gridParameter = Converter.GridParameter(request); var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var coList = helper.GetEszkozokCoList(id); var modelList = new List(); foreach (var co in coList) { var gridModel = new AlkalmazottInfoModel.EszkozModel(co); modelList.Add(gridModel); } return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev); } #endregion [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveAMITanarVegzettseg(AMITanarVegzettsegWizardModel model) { var blValidator = new BlValidator(model); if (!blValidator.IsValid) { foreach (var item in blValidator.ErrorList) { ModelState.AddModelError("Error", item.ErrorMessage); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var helper = new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (model.EntityId.HasValue) { helper.UpdateAMITanarVegzettseg(model.ToCo(), ClaimData.KovTanevID); } else { helper.SaveAMITanarVegzettseg(model.ToCo(), ClaimData.KovTanevID); } return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTanitoVegzettseg(TanitoVegzettsegWizardModel model) { new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveTanitoVegzettseg(model.ToCo(), ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveGyogypedagogusVegzettseg(GyogyPedagogusVegzettsegWizardModel model) { new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveGyogypedagogusVegzettseg(model.ToCo(), ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage UpdateTanitoVegzettseg(TanitoVegzettsegWizardModel model) { new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateTanitoVegzettseg(model.ToCo(), ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage UpdateGyogypedagogusVegzettseg(GyogyPedagogusVegzettsegWizardModel model) { new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()).UpdateGyogypedagogusVegzettseg(model.ToCo(), ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteKepesites(AlkalmazottInfoModel.KKVegzettsegMainModel row) { var helper = new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (row.KepesitesTipusId == null) { helper.DeleteKepesites(row.AlkalmazottId, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } if (row.KepesitesTipusId == (int)KKKepesitesJellTipusEnum.Tanar) { helper.DeleteTanarVegzettseg(row.EntityID.Value, row.AlkalmazottId, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } if (row.KepesitesTipusId == (int)KKKepesitesJellTipusEnum.TanarAMI) { helper.DeleteAMITanarVegzettseg(row.EntityID.Value, row.AlkalmazottId, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } if (row.KepesitesTipusId == (int)KKKepesitesJellTipusEnum.Tanito) { helper.DeleteTanitoVegzettseg(row.AlkalmazottId, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } if (row.KepesitesTipusId == (int)KKKepesitesJellTipusEnum.Gyogypedagogus) { helper.DeleteGyogypedagogusVegzettseg(row.AlkalmazottId, ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } return new HttpResponseMessage(HttpStatusCode.BadRequest); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveKulsosAlkalmazott(KulsosAlkalmazottModel model) { AlterAlkalmazottCustomValidation(model); if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var co = new TanarAdatCO() { Nem = model.Nem, NevElotag = model.NevEloTag, Elotag = model.NevEloTag, SzuletesiNevElotag = model.NevEloTag, SzuletesiCsaladiNev = model.SzuletesiCsaladiNev, SzuletesiUtonev = model.SzuletesiUtonev, AnyjaCsaladiNeve = model.AnyjaCsaladiNeve, AnyjaUtoneve = model.NevEloTag, MunkavallaloCsaladiNev = model.MunkavallaloCsaladiNev, MunkavallaloUtonev = model.MunkavallaloUtonev, FeladatellatasiHely = model.FeladatellatasiHely.Value, Oraszam = model.KotelezoOraszam, SzuletesiHely = model.SzuletesiHely, SzuletesiIdo = model.SzuletesiIdo.Value, MunkaKor = model.MunkaKor, FoglalkoztatasiJogviszony = model.FoglalkoztatasiJogviszony, BetoltetlenAllashely = model.BetoltetlenAllashely, Iranyitoszam = model.Iranyitoszam, HelysegNeve = model.Varos, KozteruletNeve = model.Cim, Hazszam = "1", VezetoiOraszamOka = (int)VezetoiOraszamokTipusEnum.Nincs, IsKulsoAlkalmazott = true, BelepesiNev = model.BelepesiNev, Jelszo = model.Jelszo, Email = model.EmailCim, EmailTipus = model.EmailTipus, Telefon = model.Telefon, TelefonTipus = model.TelefonTipus }; var h = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); h.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveKulsoGyakorlatiAllashely(KulsoGyakorlatiAllashelyModel model) { AlterAlkalmazottCustomValidation(model); if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var co = new TanarAdatCO() { Nem = model.Nem, NevElotag = model.NevEloTag, Elotag = model.NevEloTag, SzuletesiNevElotag = model.NevEloTag, SzuletesiCsaladiNev = model.SzuletesiCsaladiNev, SzuletesiUtonev = model.SzuletesiUtonev, AnyjaCsaladiNeve = model.AnyjaCsaladiNeve, AnyjaUtoneve = model.NevEloTag, MunkavallaloCsaladiNev = model.MunkavallaloCsaladiNev, MunkavallaloUtonev = model.MunkavallaloUtonev, FeladatellatasiHely = model.FeladatellatasiHely.Value, Oraszam = model.KotelezoOraszam, SzuletesiHely = model.SzuletesiHely, SzuletesiIdo = model.SzuletesiIdo.Value, MunkaKor = model.MunkaKor, FoglalkoztatasiJogviszony = model.FoglalkoztatasiJogviszony, BetoltetlenAllashely = model.BetoltetlenAllashely, Iranyitoszam = model.Iranyitoszam, HelysegNeve = model.Varos, KozteruletNeve = model.Cim, Hazszam = "1", VezetoiOraszamOka = (int)VezetoiOraszamokTipusEnum.Nincs, }; var h = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); h.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveDualisKepzohelyiOktato(DualisKepzohelyiOktatoModel model) { return SaveDualisKepzohelyiOktato(model, false); } #region Továbbképzés tab [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)] public DataSourceResult GetTovabbkepzesGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request) { var (gridParameter, modelList, alkalmazottNev) = GetTovabbkepzesGridData(id, request); return modelList.ToDataSourceResult(gridParameter); } public HttpResponseMessage GetExportTovabbkepzesGrid(int id, DataSourceRequest request) { try { var (gridParameter, modelList, alkalmazottNev) = GetTovabbkepzesGridData(id, request); return GetTovabbkepzesExportFile(gridParameter, modelList, AdatszolgaltatasokResource.TovabbkepzesExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.TovabbkepzesExportFileName}_{DateTime.Now:yyyy_MM_dd}.{Constants.ImportExport.FileFormatXlsx}", ClaimData.SelectedTanevID.Value); } catch (Exception ex) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex }; } } private HttpResponseMessage GetTovabbkepzesExportFile(GridParameters gridParameter, List modelList, string worksheetName, string fileName, int tanevId) { var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary); var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos(AlkalmazottInfoModel.TovabbkepzesModel.TovabbkepzesExportAttributeId); var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId); return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName); } private (GridParameters gridParameter, List modelList, string alkalmazottNev) GetTovabbkepzesGridData(int id, DataSourceRequest request) { var gridParameter = Converter.GridParameter(request); var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var coList = helper.GetAlkalmazottTovabbkepzesek(id); var modelList = new List(); foreach (var co in coList) { var gridModel = new AlkalmazottInfoModel.TovabbkepzesModel(co); modelList.Add(gridModel); } return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev); } #endregion [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTovabbkepzes(TovabbkepzesModel model) { try { if (!ValidateTovabbkepzesModel(model, out var errorDictionary)) { ModelState.AddRange(errorDictionary); } if (ModelState.IsValid) { var tanarHelper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); tanarHelper.SaveTovabbkepzes(model.ConvertModelToCo()); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } catch (BlException e) { throw new StatusError(HttpStatusCode.BadRequest, e.Message); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteTovabbkepzes([FromBody] int id) { try { var tanarHelper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); tanarHelper.DeleteTovabbkepzes(id); return new HttpResponseMessage(HttpStatusCode.OK); } catch (EntityDeleteFailedException) { throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.AzElemNemTorolheto); } } private bool ValidateTovabbkepzesModel(TovabbkepzesModel model, out Dictionary errorDictionary) { errorDictionary = new Dictionary(); //NOTE: Ha valamelyik mező ki van töltve, akkor valid a model. var isValid = !string.IsNullOrWhiteSpace(model.TovabbkepzesMegnevezese) || !string.IsNullOrWhiteSpace(model.EngedelySzama) || !string.IsNullOrWhiteSpace(model.Helyszin) || model.Datum.HasValue || model.Oraszam.HasValue || !string.IsNullOrWhiteSpace(model.TanusitvanySorszama); if (!isValid) { errorDictionary.Add("Error", ErrorResource.LegalabbEgyMezoKitolteseKotelezo); } return isValid; } private void AlterAlkalmazottCustomValidation(IAlterAlkalmazottValidationModel model) { var alkalmazottHelper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (alkalmazottHelper.IsTeljesNevTulHosszu(model.MunkavallaloCsaladiNev + model.MunkavallaloUtonev)) { ModelState.AddModelError("AlapAdatModel.MunkavallaloCsaladiNev", AlkalmazottResource.ACsaladiEsUtonevEgyuttNemLehetHosszabb61Karakternel); } } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveHitoktato(HitoktatoModel model) { AlterAlkalmazottCustomValidation(model); if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var co = new TanarAdatCO() { Nem = model.Nem, NevElotag = model.NevEloTag, Elotag = model.NevEloTag, SzuletesiNevElotag = model.NevEloTag, SzuletesiCsaladiNev = model.SzuletesiCsaladiNev, SzuletesiUtonev = model.SzuletesiUtonev, AnyjaCsaladiNeve = model.AnyjaCsaladiNeve, AnyjaUtoneve = model.NevEloTag, MunkavallaloCsaladiNev = model.MunkavallaloCsaladiNev, MunkavallaloUtonev = model.MunkavallaloUtonev, FeladatellatasiHely = model.FeladatellatasiHely.Value, Oraszam = model.KotelezoOraszam, SzuletesiHely = model.SzuletesiHely, SzuletesiIdo = model.SzuletesiIdo.Value, MunkaKor = model.MunkaKor, FoglalkoztatasiJogviszony = model.FoglalkoztatasiJogviszony, BetoltetlenAllashely = model.BetoltetlenAllashely, Iranyitoszam = model.Iranyitoszam, HelysegNeve = model.Varos, KozteruletNeve = model.Cim, Hazszam = "1", VezetoiOraszamOka = (int)VezetoiOraszamokTipusEnum.Nincs }; var h = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType()); h.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveKepesitesNelkuli(VegzettsegWizardBaseModel model) { new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()).SaveKepesitesNelkuli(model.ToCo(), ClaimData.KovTanevID); return new HttpResponseMessage(HttpStatusCode.OK); } [HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveTanarVegzettseg(TanarVegzettsegWizardModel model) { var helper = new VegzettsegHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (model.EntityId.HasValue) { helper.UpdateTanarVegzettseg(model.ToCo(), ClaimData.KovTanevID); } else { helper.SaveTanarVegzettseg(model.ToCo(), ClaimData.KovTanevID); } return new HttpResponseMessage(HttpStatusCode.OK); } } }