using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Runtime.Caching; using System.Web.Http; using System.Web.Http.Results; using System.Web.Mvc; using Kendo.Mvc.UI; using Kreta.BusinessLogic.Classes; using Kreta.BusinessLogic.Classes.ComboBox; using Kreta.BusinessLogic.Exceptions; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Security; using Kreta.Client.Eugyintezes.Configuration; using Kreta.Core; using Kreta.Enums; using Kreta.Enums.ManualEnums; using Kreta.Framework.Util; using Kreta.Resources; using Kreta.Web.Areas.Beiratkozas.Models; using Kreta.Web.Helpers; using Kreta.Web.Helpers.Error; using Kreta.Web.Helpers.Grid; using Kreta.Web.Security; using Microsoft.Ajax.Utilities; using Newtonsoft.Json; using RestSharp; using ModelStateDictionary = System.Web.Http.ModelBinding.ModelStateDictionary; namespace Kreta.Web.Areas.Beiratkozas.Controllers { [ApiRoleClaimsAuthorize(true)] [ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue)] public class NebuloApiController : ApiController { private readonly IEugyintezesClientConfiguration EugyintezesClientConfiguration; public NebuloApiController(IEugyintezesClientConfiguration eugyintezesClientConfiguration) { EugyintezesClientConfiguration = eugyintezesClientConfiguration ?? throw new ArgumentNullException(nameof(eugyintezesClientConfiguration)); } [System.Web.Http.HttpPost] public DataSourceResult GetNebuloGrid([System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request) { var model = JsonConvert.DeserializeObject(request.data); var helper = new NebuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; var nebulok = helper.GetNebuloListForGrid(model.ToCo()); return nebulok.ToDataSourceResult(); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage ChangeStatus(int id, int status) { if (ClaimData.IsBeiratkozasVeglegesitve) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.BeiratkozasVeglegesitesMentesHiba); } var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); NebuloCo nebuloCo = helper.GetNebuloById(id); var isNincsOktAzon = false; if (!nebuloCo.NincsOktatasiAzonosito) isNincsOktAzon = true; if (string.IsNullOrWhiteSpace(nebuloCo.OktatasiAzonositoSzama) && isNincsOktAzon) return Request.CreateErrorResponse((HttpStatusCode)422, BeiratkozasResource.OktAzonMegadasaKotelezo); var regiStatusz = nebuloCo.FelvetelStatuszaId; if ((FelvetelStatuszaTipusEnum)status == FelvetelStatuszaTipusEnum.Felveve || (FelvetelStatuszaTipusEnum)status == FelvetelStatuszaTipusEnum.NemFelveve) { var model = new NebuloModel(nebuloCo) { FelvetelStatusza = status }; ModelStateDictionary modelStateDictionary = model.Validate(ClaimData.SelectedTanevID.Value); if (!modelStateDictionary.IsValid) { var errorMessage = $"{BeiratkozasResource.AJelentkezesStatuszaNemAllithatoErreAzErtekreAzAlabbiakMiatt}

{string.Join("
", modelStateDictionary.Values.SelectMany(s => s.Errors.Select(e => e.ErrorMessage)))}"; return Request.CreateErrorResponse((HttpStatusCode)422, errorMessage); } } if (isNincsOktAzon) { var jsonData = JsonConvert.SerializeObject(new { OktatasiAzonosito = nebuloCo.OktatasiAzonositoSzama, SzuletesiDatum = nebuloCo.SzuletesiIdo, UjStatusz = status, RegiStatusz = regiStatusz }); var eUgyResult = NebuloWebLogic.NebuloStatuszUpdate(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); if (eUgyResult.StatusCode == HttpStatusCode.OK) { helper.SetFelvetelStatusza(id, (FelvetelStatuszaTipusEnum)status); } else if (eUgyResult.StatusCode == HttpStatusCode.Conflict) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, NebuloWebLogic.ProcessEugyChangeErrorResult(eUgyResult)); } } else { helper.SetFelvetelStatusza(id, (FelvetelStatuszaTipusEnum)status); } return new HttpResponseMessage(HttpStatusCode.OK); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveNebulo(NebuloModel model) { var isNincsOktAzon = false; if (!model.NincsOktatasiAzonosito) isNincsOktAzon = true; if (ClaimData.IsBeiratkozasVeglegesitve) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.BeiratkozasVeglegesitesMentesHiba); } model.SzuletesiVezeteknev = !model.SzuletesiVezeteknev.IsNullOrWhiteSpace() ? model.SzuletesiVezeteknev : model.Vezeteknev; model.SzuletesiKeresztnev = !model.SzuletesiKeresztnev.IsNullOrWhiteSpace() ? model.SzuletesiKeresztnev : model.Keresztnev; ModelState.Merge(model.Validate(ClaimData.SelectedTanevID.Value)); if (ModelState.IsValid) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); IRestResponse eUgyResult; if (isNincsOktAzon) { if (!model.Id.HasValue) { if (helper.IsNebuloLetezikAdottStatuszban(model.OktatasiAzonositoSzama, model.SzuletesiIdo.Value, (int)FelvetelStatuszaTipusEnum.Fuggoben)) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.FuggoNebuloLetezik); var obj = new List(); obj.Add(new { OktatasiAzonosito = model.OktatasiAzonositoSzama, SzuletesiDatum = model.SzuletesiIdo, Statusz = (int)FelvetelStatuszaTipusEnum.Fuggoben, IsKorzetes = model.EletvitelszeruOttLakasKorzetes }); var jsonData = JsonConvert.SerializeObject(obj); eUgyResult = NebuloWebLogic.NebuloInsert(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); if (eUgyResult.StatusCode == HttpStatusCode.OK) { var respModel = JsonConvert.DeserializeObject>(eUgyResult.Content); if (respModel.Count == 1 && respModel[0].MuveletStatusz == BeiratkozasResource.MuveletStatuszSikeres) { helper.SaveNebulo(model.ToCo()); } if (respModel.Count == 1 && respModel[0].MuveletStatusz == BeiratkozasResource.MuveletStatuszHiba) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, NebuloWebLogic.ProcessEugyInsertErrorResult(respModel)); } } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.NebuloFelvitelekorHiba); } } else { NebuloCo nebuloCo = helper.GetNebuloById(model.Id.Value); if (nebuloCo.OktatasiAzonositoSzama != model.OktatasiAzonositoSzama || nebuloCo.SzuletesiIdo != model.SzuletesiIdo || nebuloCo.EletvitelszeruOttLakasKorzetes != model.EletvitelszeruOttLakasKorzetes) { if (string.IsNullOrWhiteSpace(nebuloCo.OktatasiAzonositoSzama)) { var obj = new List(); obj.Add(new { OktatasiAzonosito = model.OktatasiAzonositoSzama, SzuletesiDatum = model.SzuletesiIdo, Statusz = nebuloCo.FelvetelStatuszaId, IsKorzetes = model.EletvitelszeruOttLakasKorzetes }); var jsonData = JsonConvert.SerializeObject(obj); eUgyResult = NebuloWebLogic.NebuloInsert(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); var respModel = JsonConvert.DeserializeObject>(eUgyResult.Content); if (respModel.Count == 1 && respModel[0].MuveletStatusz == BeiratkozasResource.MuveletStatuszSikeres) { helper.SaveNebulo(model.ToCo()); } if (respModel.Count == 1 && respModel[0].MuveletStatusz == BeiratkozasResource.MuveletStatuszHiba) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, NebuloWebLogic.ProcessEugyInsertErrorResult(respModel)); } } else { var jsonData = JsonConvert.SerializeObject(new { RegiOktatasiAzonosito = nebuloCo.OktatasiAzonositoSzama, UjOktatasiAzonosito = model.OktatasiAzonositoSzama, RegiSzuletesiDatum = nebuloCo.SzuletesiIdo, UjSzuletesiDatum = model.SzuletesiIdo, RegiStatusz = nebuloCo.FelvetelStatuszaId, IsKorzetes = model.EletvitelszeruOttLakasKorzetes }); eUgyResult = NebuloWebLogic.NebuloDataUpdate(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); if (eUgyResult.StatusCode == HttpStatusCode.OK) { helper.SaveNebulo(model.ToCo()); } else if (eUgyResult.StatusCode == HttpStatusCode.Conflict) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, NebuloWebLogic.ProcessEugyChangeErrorResult(eUgyResult)); } } } else { helper.SaveNebulo(model.ToCo()); } } } else { helper.SaveNebulo(model.ToCo()); } return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage ValidateNebulo(int id, int status) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); NebuloCo nebuloCo = helper.GetNebuloById(id); if ((FelvetelStatuszaTipusEnum)status == FelvetelStatuszaTipusEnum.Felveve || (FelvetelStatuszaTipusEnum)status == FelvetelStatuszaTipusEnum.NemFelveve) { var model = new NebuloModel(nebuloCo) { FelvetelStatusza = status }; ModelStateDictionary modelStateDictionary = model.Validate(ClaimData.SelectedTanevID.Value); if (!modelStateDictionary.IsValid) { var errorMessage = $"{BeiratkozasResource.AJelentkezesStatuszaNemAllithatoErreAzErtekreAzAlabbiakMiatt}

{string.Join("
", modelStateDictionary.Values.SelectMany(s => s.Errors.Select(e => e.ErrorMessage)))}"; return Request.CreateErrorResponse((HttpStatusCode)422, errorMessage); } } return new HttpResponseMessage(HttpStatusCode.OK); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveNemFelvettNebulo(NebuloNemFelvettModel model) { if (ModelState.IsValid) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); NebuloCo nebuloCo = helper.GetNebuloById(model.Id); var nebulomodel = new NebuloModel(nebuloCo) { FelvetelStatusza = (int)FelvetelStatuszaTipusEnum.NemFelveve, Indoklas = model.Indoklas }; ModelStateDictionary modelStateDictionary = nebulomodel.Validate(ClaimData.SelectedTanevID.Value); if (!modelStateDictionary.IsValid) { var errorMessage = $"{BeiratkozasResource.AJelentkezesStatuszaNemAllithatoErreAzErtekreAzAlabbiakMiatt}

{string.Join("
", modelStateDictionary.Values.SelectMany(s => s.Errors.Select(e => e.ErrorMessage)))}"; return Request.CreateErrorResponse((HttpStatusCode)422, errorMessage); } if (string.IsNullOrWhiteSpace(nebuloCo.OktatasiAzonositoSzama)) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.OktAzonMegadasaKotelezo); var isNincsOktAzon = false; if (!nebuloCo.NincsOktatasiAzonosito) isNincsOktAzon = true; if (isNincsOktAzon) { var jsonData = JsonConvert.SerializeObject(new { OktatasiAzonosito = nebuloCo.OktatasiAzonositoSzama, SzuletesiDatum = nebuloCo.SzuletesiIdo, UjStatusz = (int)FelvetelStatuszaTipusEnum.NemFelveve, RegiStatusz = nebuloCo.FelvetelStatuszaId }); var eUgyResult = NebuloWebLogic.NebuloStatuszUpdate(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); if (eUgyResult.StatusCode == HttpStatusCode.OK) { helper.SaveNemFelvettNebulo(model.Id, model.Indoklas); } else if (eUgyResult.StatusCode == HttpStatusCode.Conflict) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, NebuloWebLogic.ProcessEugyChangeErrorResult(eUgyResult)); } } else { helper.SaveNemFelvettNebulo(model.Id, model.Indoklas); } return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage SaveNebuloMultiEdit(NebuloMultiEditModel model) { if (ClaimData.IsBeiratkozasVeglegesitve) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.BeiratkozasVeglegesitesMentesHiba); } ModelState.Merge(model.Validate()); if (ModelState.IsValid) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); List nebuloCoList = helper.GetNebuloListByIdList(model.IdList); List invalidNebuloNevList = new List(); foreach (var nebuloCo in nebuloCoList) { var nebuloModel = new NebuloModel(nebuloCo); SetMultiValues(nebuloModel, model); ModelStateDictionary modelStateDictionary = nebuloModel.Validate(ClaimData.SelectedTanevID.Value); if (!modelStateDictionary.IsValid) { //NOTE: Nem lehet null az Id, mert db-ből jön! model.IdList.Remove(nebuloCo.Id.Value); invalidNebuloNevList.Add(nebuloModel.NebuloNeve); } } if (model.IdList.Any()) { helper.SaveNebuloMultiEdit(model.ToCo()); } else { //var responseMessage = BeiratkozasResource.MultiSaveOsszesNebuloHianyosAdatok; var responseMessage = string.Format(BeiratkozasResource.MultiSaveErrorMsg, string.Join("
- ", invalidNebuloNevList)); return Request.CreateErrorResponse(HttpStatusCode.BadRequest, responseMessage); } if (invalidNebuloNevList.Any()) { var responseMessage = string.Format(BeiratkozasResource.MultiSaveHianyosAdatok, string.Join("
- ", invalidNebuloNevList)); return Request.CreateErrorResponse(HttpStatusCode.OK, responseMessage); } return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } private void SetMultiValues(NebuloModel nebuloModel, NebuloMultiEditModel model) { if (model.Anyanyelv.HasValue) { nebuloModel.Anyanyelv = model.Anyanyelv.Value; } if (model.Allampolgarsag.HasValue) { nebuloModel.Allampolgarsag = model.Allampolgarsag.Value; } if (model.Allampolgarsag2.HasValue) { nebuloModel.Allampolgarsag2 = model.Allampolgarsag2.Value; } if (model.Neme.HasValue) { nebuloModel.Neme = model.Neme.Value; } if (model.SzuletesiOrszag.HasValue) { nebuloModel.SzuletesiOrszag = model.SzuletesiOrszag.Value; } //if (model.TKRokonsagiFok.HasValue) //{ // nebuloModel.TKRokonsagiFok = model.TKRokonsagiFok.Value; //} //if (!string.IsNullOrWhiteSpace(model.OvodaAzonosito)) //{ // nebuloModel.OvodaAzonosito = model.OvodaAzonosito; //} //if (!string.IsNullOrWhiteSpace(model.OvodaNev)) //{ // nebuloModel.OvodaNev = model.OvodaNev; //} if (model.FeladatellatasiHelyId.HasValue) { nebuloModel.FeladatellatasiHelyId = model.FeladatellatasiHelyId.Value; } if (model.KirSzolgaltatasTipusId.HasValue) { nebuloModel.KirSzolgaltatasTipusId = model.KirSzolgaltatasTipusId.Value; } if (model.Tagozat.HasValue) { nebuloModel.Tagozat = model.Tagozat.Value; } //if (model.EletvitelszeruOttLakasKorzetes.HasValue) //{ // nebuloModel.EletvitelszeruOttLakasKorzetes = model.EletvitelszeruOttLakasKorzetes.Value == 1; //} if (model.SzakertoiBizottsagKormanyhivatalAltalKijelolttanulo.HasValue) { nebuloModel.SzakertoiBizottsagKormanyhivatalAltalKijelolttanulo = model.SzakertoiBizottsagKormanyhivatalAltalKijelolttanulo.Value == 1; } if (model.SzulojeTestvereTartosanBetegVagyFogyatekkalElo.HasValue) { nebuloModel.SzulojeTestvereTartosanBetegVagyFogyatekkalElo = model.SzulojeTestvereTartosanBetegVagyFogyatekkalElo.Value == 1; } if (model.TestvereAzIntezmenyTanuloja.HasValue) { nebuloModel.TestvereAzIntezmenyTanuloja = model.TestvereAzIntezmenyTanuloja.Value == 1; } if (model.SzulojenekMunkahelyeAzIskolaKorzetebenTalalhato.HasValue) { nebuloModel.SzulojenekMunkahelyeAzIskolaKorzetebenTalalhato = model.SzulojenekMunkahelyeAzIskolaKorzetebenTalalhato.Value == 1; } if (model.AzIskolaALakohelyetolEgyKilometerenBelulTalalhato.HasValue) { nebuloModel.AzIskolaALakohelyetolEgyKilometerenBelulTalalhato = model.AzIskolaALakohelyetolEgyKilometerenBelulTalalhato.Value == 1; } if (model.IsOsszevontOsztaly.HasValue) { nebuloModel.IsOsszevontOsztaly = model.IsOsszevontOsztaly.Value == 1; } if (model.IsKorzetes.HasValue) { nebuloModel.EletvitelszeruOttLakasKorzetes = model.IsKorzetes.Value == 1; } if (model.SNI.HasValue) { var boolSniValue = model.SNI.Value == 1; nebuloModel.SNI = boolSniValue; if (boolSniValue && model.SNILetszamSuly.HasValue) { nebuloModel.SNILetszamSuly = model.SNILetszamSuly.Value; } else if (!boolSniValue) { nebuloModel.SNILetszamSuly = 1; } } if (model.BTM.HasValue) { var boolBtmValue = model.BTM.Value == 1; nebuloModel.BTM = boolBtmValue; if (boolBtmValue && model.BTMLetszamSuly.HasValue) { nebuloModel.BTMLetszamSuly = model.BTMLetszamSuly.Value; } else if (!boolBtmValue) { nebuloModel.BTMLetszamSuly = 1; } } if (model.EtikaHitErkolcstan.HasValue) { nebuloModel.EtikaHitErkolcstan = model.EtikaHitErkolcstan.Value; } if (!string.IsNullOrWhiteSpace(model.Megjegyzes)) { nebuloModel.Megjegyzes = model.Megjegyzes; } if (!string.IsNullOrWhiteSpace(model.Osztalya)) { nebuloModel.Osztalya = model.Osztalya; } if (!string.IsNullOrWhiteSpace(model.Indoklas)) { nebuloModel.Indoklas = model.Indoklas; } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage DeleteNebulo([FromBody] int id) { if (ClaimData.IsBeiratkozasVeglegesitve) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.BeiratkozasVeglegesitesMentesHiba); } try { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); NebuloCo nebuloCo = helper.GetNebuloById(id); if (string.IsNullOrWhiteSpace(nebuloCo.OktatasiAzonositoSzama)) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.OktAzonMegadasaKotelezo); var isNincsOktAzon = false; if (!nebuloCo.NincsOktatasiAzonosito) isNincsOktAzon = true; if (isNincsOktAzon) { var obj = new List(); obj.Add(new { OktatasiAzonosito = nebuloCo.OktatasiAzonositoSzama, SzuletesiDatum = nebuloCo.SzuletesiIdo, Statusz = nebuloCo.FelvetelStatuszaId }); var jsonData = JsonConvert.SerializeObject(obj); var eUgyResult = NebuloWebLogic.NebuloDelete(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); if (eUgyResult != null && eUgyResult.StatusCode == HttpStatusCode.OK) { var respModel = JsonConvert.DeserializeObject>(eUgyResult.Content); if (respModel.Count == 1 && respModel[0].MuveletStatusz == BeiratkozasResource.MuveletStatuszSikeres) { helper.DeleteNebulo(id); } else { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, BeiratkozasResource.NebuloTorlesSikertelen); } } } else { helper.DeleteNebulo(id); } return new HttpResponseMessage(HttpStatusCode.OK); } catch (CannotBeDeletedException ex) { throw new StatusError(HttpStatusCode.BadRequest, ex.Message); } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage BeiratkozasVeglegesites(bool isVeglegesites) { if (ModelState.IsValid) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); if (isVeglegesites) { List nebuloCoList = helper.GetNebuloList(); var nebuloModelList = nebuloCoList.Select(x => new NebuloModel(x)).ToList(); foreach (var nebuloModel in nebuloModelList) { ModelStateDictionary modelStateDictionary = nebuloModel.Validate(ClaimData.SelectedTanevID.Value, true); var gvCnt = helper.GetOvodasGvCntByNebuloOktAzon(nebuloModel.OktatasiAzonositoSzama); if (!modelStateDictionary.IsValid || gvCnt == 0) { var responseMessage = BeiratkozasResource.VeglegetitesNemLehetseges; return Request.CreateErrorResponse(HttpStatusCode.BadRequest, responseMessage); } } var rosszStatuszNebuloNevList = new List(); foreach (var nebuloModel in nebuloModelList) { if (nebuloModel.FelvetelStatusza == FelvetelStatuszaTipusEnum.Fuggoben.AsInt()) { rosszStatuszNebuloNevList.Add(nebuloModel.NebuloNeve); } } if (rosszStatuszNebuloNevList.Any()) { var responseMessage = string.Format(BeiratkozasResource.BeiratkozasVeglegesitesRosszStatusz, string.Join("
- ", rosszStatuszNebuloNevList)); return Request.CreateErrorResponse(HttpStatusCode.BadRequest, responseMessage); } } helper.SetBeiratkozasVeglegesites(isVeglegesites); ClaimManager.AddClaim(KretaClaimTypes.IsBeiratkozasVeglegesitve, isVeglegesites.ToString()); //new UzenetekHelper().IntezmenyVeglegesBeiratkozas(ClaimData.IntezmenyId); return new HttpResponseMessage(HttpStatusCode.OK); } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage HatarozatElotoltese() { try { NebuloWebLogic.CreateKovTanevTanuloFromFelvettNebulo(null); var hasFailRows = NebuloWebLogic.KretaPreCheck(); NebuloWebLogic.BAIPreCheck(EugyintezesClientConfiguration); /*BAI Hangfire meghívása*/ var nHelper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var nebuloDic = nHelper.GetAllNebuloDataForBai(); foreach (var nebulo in nebuloDic) { NebuloWebLogic.BAIDontesAtadas(EugyintezesClientConfiguration, nebulo.Key, nebulo.Value); } /*BAI Hangfire meghívása*/ return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception e) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e); } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage CreateKovTanevTanulo([FromBody] int nebuloId) { try { NebuloWebLogic.CreateKovTanevTanuloFromFelvettNebulo(nebuloId); return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception e) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e); } } //[System.Web.Http.HttpPost] //[ApiValidateAjaxAntiForgeryToken] //public HttpResponseMessage EmailErtesitesKuldese() //{ // if (ModelState.IsValid) // { // var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); // List nebuloCoList = helper.GetErtesitendoNebuloList(); // foreach (var nebuloCo in nebuloCoList) // { // //NOTE: Nem lehet null egyik érték sem! // var statusz = nebuloCo.FelvetelStatusza.Value; // if (statusz == FelvetelStatuszaTipusEnum.Felveve.AsInt() || statusz == FelvetelStatuszaTipusEnum.NemFelveve.AsInt()) // { // var id = nebuloCo.Id.Value; // var nebuloDokumnetum = new NyomtatvanyokController(null).NebuloEgyedi(id, statusz); // if (statusz == FelvetelStatuszaTipusEnum.Felveve.AsInt()) // { // new UzenetekHelper().NebuloFelvetel(ClaimData.IntezmenyId, id, nebuloDokumnetum.GetBuffer()); // } // if (statusz == FelvetelStatuszaTipusEnum.NemFelveve.AsInt()) // { // new UzenetekHelper().NebuloElutasitas(ClaimData.IntezmenyId, id, nebuloDokumnetum.GetBuffer()); // } // helper.UpdateErtesitesiDatum(id); // } // } // return new HttpResponseMessage(HttpStatusCode.OK); // } // return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); //} [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public System.Web.Mvc.JsonResult DeleteKijeloltNebulok(List nebuloIdList) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()); var obj = new List(); var nebuloList = new List(); var validationErrorMsg = string.Empty; foreach (var item in nebuloIdList) { NebuloCo nebuloCo = helper.GetNebuloById(item); if (string.IsNullOrWhiteSpace(nebuloCo.OktatasiAzonositoSzama)) validationErrorMsg += "
" + nebuloCo.Vezeteknev + " " + nebuloCo.Keresztnev + BeiratkozasResource.EsetenOktAzonMegadasaKotelezo; obj.Add(new { OktatasiAzonosito = nebuloCo.OktatasiAzonositoSzama, SzuletesiDatum = nebuloCo.SzuletesiIdo, Statusz = nebuloCo.FelvetelStatuszaId }); nebuloList.Add(new TobbesTorlesNEbuloEugyModel { OktatasiAzonosito = nebuloCo.OktatasiAzonositoSzama, Nev = nebuloCo.Vezeteknev + " " + nebuloCo.Keresztnev, Id = nebuloCo.Id.Value }); } if (!string.IsNullOrWhiteSpace(validationErrorMsg)) throw new StatusError(HttpStatusCode.BadRequest, string.Format(BeiratkozasResource.NebuloTobbesTorlesSikertelen, validationErrorMsg)); var jsonData = JsonConvert.SerializeObject(obj); var eUgyResult = NebuloWebLogic.NebuloDelete(EugyintezesClientConfiguration, ClaimData.IntezmenyAzonosito, jsonData); if (eUgyResult != null && eUgyResult.StatusCode == HttpStatusCode.OK) { var respModel = JsonConvert.DeserializeObject>(eUgyResult.Content); if (respModel.Count > 0) { string errorMsg = string.Empty; foreach (var item in respModel) { var nebulo = nebuloList.Where(x => x.OktatasiAzonosito == item.OktatasiAzonosito).FirstOrDefault(); if (nebulo != null) { if (item.MuveletStatusz == BeiratkozasResource.MuveletStatuszSikeres) { helper.DeleteNebulo(nebulo.Id); } else { errorMsg += $"
{nebulo.OktatasiAzonosito} - {nebulo.Nev}"; } } } if (string.IsNullOrWhiteSpace(errorMsg)) { var deletedNebuloIdList = helper.DeleteNebuloList(nebuloIdList); return new System.Web.Mvc.JsonResult { Data = string.Format(BeiratkozasResource.NebulokTorleseSikeres, deletedNebuloIdList.Count) }; } throw new StatusError(HttpStatusCode.BadRequest, string.Format(BeiratkozasResource.NebuloTobbesTorlesSikertelen, errorMsg)); } throw new StatusError(HttpStatusCode.BadRequest, BeiratkozasResource.NebuloTorlesSikertelen); } throw new StatusError(HttpStatusCode.BadRequest, BeiratkozasResource.NebuloTorlesSikertelen); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public JsonResult DeleteKijeloltNebulokKIRStatusz(List nebuloIdList) { try { var helper = new NebuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); foreach (var item in nebuloIdList) { helper.DeleteNebuloKIRStatusz(item); } return new System.Web.Mvc.JsonResult { Data = string.Format(BeiratkozasResource.NebulokKIRStatuszTorleseSikeres, nebuloIdList.Count) }; } catch (Exception e) { throw new StatusError(HttpStatusCode.BadRequest, BeiratkozasResource.NebulokKIRStatuszTorlesSikertelen); } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public HttpResponseMessage KirSzinkron(KirSzinkronModel kirSzinkronModel) { var szinkronizalandoNebuloList = new List(); if (kirSzinkronModel != null) { if (kirSzinkronModel.TelephelyId == 0) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "KIR telephely kiválasztása kötelező!"); } if (!kirSzinkronModel.Nebulok.Any()) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Nincs Kijelölve szinkronizálandó nebuló!"); } List kirNebuloList = new NebuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetFelvettTanulokCoList(); foreach (var nebulo in kirSzinkronModel.Nebulok) { foreach (var kretaNebulo in kirNebuloList) { if (string.Equals(nebulo.OktatasiAzonosito, kretaNebulo.OktatasiAzonosito, StringComparison.OrdinalIgnoreCase) && string.Equals(nebulo.Id, kretaNebulo.Id.ToString(), StringComparison.OrdinalIgnoreCase)) { kretaNebulo.UgyviteliHelyId = kirSzinkronModel.TelephelyId; kretaNebulo.TelephelyId = kirSzinkronModel.TelephelyId; szinkronizalandoNebuloList.Add(kretaNebulo); } } } } string felhasznaloNevCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_FelhasznaloNev"; string jelszoCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_Jelszo"; string kirTokenCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_Token"; string iarAzonosito = ClaimData.IntezmenyAzonosito == "teszt-kir" ? $"KRE{ClaimData.OrganizationCode}-110" : $"KRE{ClaimData.OrganizationCode}-{ClaimData.IntezmenyAzonosito.Substring(10)}"; var kirLoginModel = new KirLoginModel { FelhasznaloNev = Cache.Get(felhasznaloNevCacheKey)?.ToString(), Jelszo = Cache.Get(jelszoCacheKey)?.ToString() }; var helper = new KirExportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); try { helper.KirSzinkronForTanulo(KirLoginModel.ConvertModelToKirModel(kirLoginModel), szinkronizalandoNebuloList, felhasznaloNevCacheKey, jelszoCacheKey, kirTokenCacheKey, iarAzonosito); return new HttpResponseMessage(HttpStatusCode.OK); } catch (Exception ex) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message); } } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public void KirLogin(NebuloKirSzinkronModel kirSzinkronModel) { string felhasznaloNevCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_FelhasznaloNev"; string jelszoCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_Jelszo"; string kirTokenCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_Token"; if (kirSzinkronModel?.KirLoginModel == null) { kirSzinkronModel = new NebuloKirSzinkronModel(); kirSzinkronModel.KirLoginModel = new KirLoginModel { FelhasznaloNev = Cache.Get(felhasznaloNevCacheKey)?.ToString(), Jelszo = Cache.Get(jelszoCacheKey)?.ToString() }; } var helper = new KirExportHelper(ConnectionTypeExtensions.GetSessionConnectionType()); helper.KirLogin(KirLoginModel.ConvertModelToKirModel(kirSzinkronModel.KirLoginModel), felhasznaloNevCacheKey, jelszoCacheKey, kirTokenCacheKey); } [System.Web.Http.HttpPost] public DataSourceResult GetNebuloLetszamGrid([System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request) { var helper = new NebuloHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }; { var nebulok = helper.GetNebuloLetszamListForGrid(); return nebulok.ToDataSourceResult(); } } public JsonResult> GetIranyitoszamList([DataSourceRequest] DataSourceRequest request, string serverFilter = "") { var helper = new TelepulesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = null; var dictionary = helper.GetIranyitoszamok(serverFilter); return Json(dictionary); } public JsonResult> GetHelysegNevList([DataSourceRequest] DataSourceRequest request) { var helper = new TelepulesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = null; var helperResult = helper.GetTelepulesek(); return Json(helperResult); } public JsonResult> GetSzuletesiHelysegNevList([DataSourceRequest] DataSourceRequest request) { var helper = new TelepulesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = null; var helperResult = helper.GetSzuletesiHelysegNevList(); return Json(helperResult); } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public JsonResult> GetHelysegNevByIranyitoszamList(string iranyitoSzam) { var helper = new TelepulesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); helper.GridParameters = null; var helperResult = helper.GetTelepulesek(iranyitoSzam); return Json(helperResult); } public JsonResult> GetFeladatEllatasiHelyList([DataSourceRequest] DataSourceRequest request) { var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()); var dictionary = helper.GetFeladatEllatasiHelyDDl(""); var comboBoxList = GetComboBoxList(dictionary); return Json(comboBoxList); } public JsonResult> GetFelvetelStatuszaList([DataSourceRequest] DataSourceRequest request) { var order = new List { FelvetelStatuszaTipusEnum.Felveve, FelvetelStatuszaTipusEnum.Fuggoben, FelvetelStatuszaTipusEnum.SzakertoiVizsgalataFolyamatban, FelvetelStatuszaTipusEnum.NemFelveve, FelvetelStatuszaTipusEnum.NemJelentMeg, FelvetelStatuszaTipusEnum.OvodabanMaradt, FelvetelStatuszaTipusEnum.MasIntezmenybeFelveve }; var dictionary = order.EnumItemListToDictionary(ClaimData.SelectedTanevID.Value); var comboBoxList = GetComboBoxList(dictionary); return Json(comboBoxList); } public JsonResult> GetTagozatList([DataSourceRequest] DataSourceRequest request) { var dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TagozatTipus, ClaimData.SelectedTanevID.Value); var comboBoxList = GetComboBoxList(dictionary); return Json(comboBoxList); } public JsonResult> GetEtikaHitErkolcstanList([DataSourceRequest] DataSourceRequest request) { var dictionary = FrameworkEnumExtensions.EnumToListManual(); var comboBoxList = GetComboBoxList(dictionary); return Json(comboBoxList); } private List GetComboBoxList(IDictionary itemList) { List comboBoxListItems = new List(); foreach (var item in itemList) { ComboBoxListItem sli = new ComboBoxListItem { Text = item.Value, Value = item.Key }; comboBoxListItems.Add(sli); } return comboBoxListItems; } [System.Web.Http.HttpPost] [ApiValidateAjaxAntiForgeryToken] public List GetKirFeladatellatasiHelyList(NebuloKirSzinkronModel kirSzinkronModel) { try { string kirFeladatellatasiHelyListCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_KirFeladatellatasiHelyList"; var kirFeladatellatasiHelyList = Cache.Get(kirFeladatellatasiHelyListCacheKey) as List; if (kirFeladatellatasiHelyList == null) { string felhasznaloNevCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_FelhasznaloNev"; string jelszoCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_Jelszo"; if (string.IsNullOrWhiteSpace(kirSzinkronModel.KirLoginModel.FelhasznaloNev)) { kirSzinkronModel.KirLoginModel.FelhasznaloNev = Cache.Get(felhasznaloNevCacheKey)?.ToString(); } if (string.IsNullOrWhiteSpace(kirSzinkronModel.KirLoginModel.Jelszo)) { kirSzinkronModel.KirLoginModel.Jelszo = Cache.Get(jelszoCacheKey)?.ToString(); } var kirHelper = new KirHelper(ConnectionTypeExtensions.GetSessionConnectionType(), kirSzinkronModel.KirLoginModel.OmAzonosito, kirSzinkronModel.KirLoginModel.FelhasznaloNev, jelszo: kirSzinkronModel.KirLoginModel.Jelszo); var telephelyList = kirHelper.GetTelephelyList(); var selectListItems = new List(); foreach (var item in telephelyList) { SelectListItem sli = new SelectListItem { Text = item.Key.Substring(1) + " - " + item.Value, Value = item.Key }; selectListItems.Add(sli); } Cache.Add(kirFeladatellatasiHelyListCacheKey, selectListItems, new CacheItemPolicy { AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddHours(1)) }); return selectListItems; } return kirFeladatellatasiHelyList; } catch (Exception e) { StatusError error = new StatusError(HttpStatusCode.BadRequest, e.Message); throw error; } } [System.Web.Http.HttpGet] public DataSourceResult GetNemSzinkronizaltNebulok([System.Web.Http.ModelBinding.ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] KretaGridDataSourceRequest request) { var nebulok = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType()) { GridParameters = Converter.GridParameter(request) }.GetNemSzinkronizaltNebulok(); return nebulok.ToDataSourceResult(); } } }