This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,980 @@
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<NebuloSearchModel>(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}<br/><br/>{string.Join("<br/>", 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<object>();
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<List<NebuloEUgySaveResponseModel>>(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<object>();
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<List<NebuloEUgySaveResponseModel>>(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}<br/><br/>{string.Join("<br/>", 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}<br/><br/>{string.Join("<br/>", 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<NebuloCo> nebuloCoList = helper.GetNebuloListByIdList(model.IdList);
List<string> invalidNebuloNevList = new List<string>();
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("<br /> - ", invalidNebuloNevList));
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, responseMessage);
}
if (invalidNebuloNevList.Any())
{
var responseMessage = string.Format(BeiratkozasResource.MultiSaveHianyosAdatok, string.Join("<br /> - ", 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<object>();
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<List<NebuloEUgyTorlesResponseModel>>(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<NebuloCo> 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<string>();
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("<br /> - ", 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<NebuloCo> 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<int> nebuloIdList)
{
var helper = new NebuloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var obj = new List<object>();
var nebuloList = new List<TobbesTorlesNEbuloEugyModel>();
var validationErrorMsg = string.Empty;
foreach (var item in nebuloIdList)
{
NebuloCo nebuloCo = helper.GetNebuloById(item);
if (string.IsNullOrWhiteSpace(nebuloCo.OktatasiAzonositoSzama))
validationErrorMsg += "<br>" + 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<List<NebuloEUgyTorlesResponseModel>>(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 += $"</br><strong>{nebulo.OktatasiAzonosito} - {nebulo.Nev}<strong>";
}
}
}
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<int> 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<KirNebuloCo>();
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<KirNebuloCo> 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<List<IranyitoszamListCO>> 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<List<TelepulesListCO>> GetHelysegNevList([DataSourceRequest] DataSourceRequest request)
{
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = null;
var helperResult = helper.GetTelepulesek();
return Json(helperResult);
}
public JsonResult<List<TelepulesListCO>> 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<List<TelepulesListCO>> GetHelysegNevByIranyitoszamList(string iranyitoSzam)
{
var helper = new TelepulesHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = null;
var helperResult = helper.GetTelepulesek(iranyitoSzam);
return Json(helperResult);
}
public JsonResult<List<ComboBoxListItem>> GetFeladatEllatasiHelyList([DataSourceRequest] DataSourceRequest request)
{
var helper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
var dictionary = helper.GetFeladatEllatasiHelyDDl("");
var comboBoxList = GetComboBoxList(dictionary);
return Json(comboBoxList);
}
public JsonResult<List<ComboBoxListItem>> GetFelvetelStatuszaList([DataSourceRequest] DataSourceRequest request)
{
var order = new List<FelvetelStatuszaTipusEnum>
{
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<List<ComboBoxListItem>> GetTagozatList([DataSourceRequest] DataSourceRequest request)
{
var dictionary = FrameworkEnumExtensions.EnumToList((int)GeneratedAdatszotarTipusEnum.TagozatTipus, ClaimData.SelectedTanevID.Value);
var comboBoxList = GetComboBoxList(dictionary);
return Json(comboBoxList);
}
public JsonResult<List<ComboBoxListItem>> GetEtikaHitErkolcstanList([DataSourceRequest] DataSourceRequest request)
{
var dictionary = FrameworkEnumExtensions.EnumToListManual<EtikaHitErkolcstanEnum>();
var comboBoxList = GetComboBoxList(dictionary);
return Json(comboBoxList);
}
private List<ComboBoxListItem> GetComboBoxList(IDictionary<string, string> itemList)
{
List<ComboBoxListItem> comboBoxListItems = new List<ComboBoxListItem>();
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<SelectListItem> GetKirFeladatellatasiHelyList(NebuloKirSzinkronModel kirSzinkronModel)
{
try
{
string kirFeladatellatasiHelyListCacheKey = $"{ClaimData.FelhasznaloNev}_{ClaimData.FelhasznaloId}_{ClaimData.IntezmenyAzonosito}_KirFeladatellatasiHelyList";
var kirFeladatellatasiHelyList = Cache.Get(kirFeladatellatasiHelyListCacheKey) as List<SelectListItem>;
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<SelectListItem>();
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();
}
}
}