kreta/KretaWeb/Areas/Alkalmazott/ApiControllers/AlkalmazottApiController.cs
2024-03-13 00:33:46 +01:00

1008 lines
46 KiB
C#

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<AlkalmazottInfoModel.PedagogusEletpalyamodellModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.PedagogusEletpalyamodellModel>(AlkalmazottInfoModel.PedagogusEletpalyamodellModel.PedagogusEletpalyamodellExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.PedagogusEletpalyamodellModel> 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<AlkalmazottInfoModel.PedagogusEletpalyamodellModel>();
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<AlkalmazottInfoModel.VegzettsegModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.VegzettsegModel>(AlkalmazottInfoModel.VegzettsegModel.VegzettsegExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.VegzettsegModel> 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<AlkalmazottInfoModel.VegzettsegModel>();
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<AlkalmazottInfoModel.EszkozModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.EszkozModel>(AlkalmazottInfoModel.EszkozModel.EszkozExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.EszkozModel> 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<AlkalmazottInfoModel.EszkozModel>();
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<AlkalmazottInfoModel.TovabbkepzesModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.TovabbkepzesModel>(AlkalmazottInfoModel.TovabbkepzesModel.TovabbkepzesExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.TovabbkepzesModel> 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<AlkalmazottInfoModel.TovabbkepzesModel>();
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<string, string> errorDictionary)
{
errorDictionary = new Dictionary<string, string>();
//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);
}
}
}