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

1346 lines
70 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text.RegularExpressions;
using System.Web.Http;
using System.Web.Http.ModelBinding;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Exceptions;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Security;
using Kreta.Client.Leltar;
using Kreta.Core;
using Kreta.Core.Exceptions;
using Kreta.Core.FeatureToggle;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Framework.Entities;
using Kreta.Framework.Util;
using Kreta.Resources;
using Kreta.Web.Areas.Alkalmazott.Helpers;
using Kreta.Web.Areas.Alkalmazott.Models;
using Kreta.Web.Areas.Tanulo.Helper;
using Kreta.Web.Helpers;
using Kreta.Web.Helpers.Error;
using Kreta.Web.Helpers.Grid;
using Kreta.Web.Models;
using Kreta.Web.Security;
using Newtonsoft.Json;
namespace Kreta.Web.Areas.Alkalmazott.ApiControllers
{
public class BaseAlkalmazottApiController : ApiController
{
protected readonly ILeltarClient _leltarClient;
public BaseAlkalmazottApiController(ILeltarClient leltarClient)
{
_leltarClient = leltarClient ?? throw new ArgumentNullException(nameof(leltarClient));
}
public AlkalmazottInfoModel.AlapadatModel GetAlkalmazottDataForInfo(int id)
{
var tanarAdatCO = GetAlkalmazottData(id);
return Helpers.AlkalmazottViewHelper.ConvertCOToAlapadatModel(tanarAdatCO);
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.IsCsokkentettAdminJog.ClaimValue)]
public AlkalmazottInfoModel.ElsodlegesMunkaugyiAdatok GetAlkalmazottElsodlegesMunkaugyiAdatokDataForInfo(int id, bool isKlebelsberg)
{
var tanarAdatCO = GetAlkalmazottData(id);
var result = Helpers.AlkalmazottViewHelper.ConvertCOToElsodlegesMunkaugyiAdatokModel(tanarAdatCO);
result.IsKlebelsberg = isKlebelsberg;
var connectionType = ConnectionTypeExtensions.GetActiveSessionConnectionType();
var intezmenyAdatok = new IntezmenyHelper(connectionType).GetIntezmenyiAdatok();
result.IsApaczaiMentorVisible = intezmenyAdatok.IsSzakkepzo && intezmenyAdatok.IsSzakkepzoJuttatas;
var helper = new FeladatEllatasiHelyHelper(connectionType);
if (result.FeladatellatasiHely > 0)
{
result.FeladatellatasiHely_NAME = helper.GetFeladatEllatasiHelyAdatok(result.FeladatellatasiHely.Value).MukodesiHelyNev;
}
return result;
}
public AlkalmazottModel GetAlkalmazottDataForModify(int id)
{
var tanarAdatCO = GetAlkalmazottData(id);
return Helpers.AlkalmazottViewHelper.ConvertCOToModel(tanarAdatCO);
}
private TanarAdatCO GetAlkalmazottData(int id)
{
var helper = new TanarHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
return helper.GetTanarAdatok(id);
}
public DataSourceResult GetAlkalmazottGrid(string data, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, _, _, _) = GetGridData(data, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExport(string data, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, exportAttributeName, sheetName, fileName) = GetGridData(data, request);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottGridModel>(exportAttributeName);
var memoryStream = SimpleExportLogic.GetExport(sheetName, simpleExportColumnCos, modelList, ClaimData.SelectedTanevID.Value);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
catch (Exception ex)
{
throw new StatusError(HttpStatusCode.BadRequest, ErrorResource.HibaTortentAFajlExportalasaKozben) { UnHandledException = ex };
}
}
private (GridParameters gridParameter, List<AlkalmazottGridModel> modelList, string exportAttributeName, string sheetName, string fileName) GetGridData(string data, DataSourceRequest request)
{
var connection = ConnectionTypeExtensions.GetSessionConnectionType();
// NOTE: Az oktatási azonosító maszkolása miatt kell kivenni
data = data.Replace("_", string.Empty);
var model = JsonConvert.DeserializeObject<AlkalmazottSearchModel>(data);
var gridParameter = Converter.GridParameter(request);
int? felhasznaloSzervezetId = null;
if (ClaimData.FelhasznaloSzerepkor != SzerepkorTipusEnum.Adminisztrator)
{
felhasznaloSzervezetId = new SzervezetHelper(connection).GetAlkalmazottSzervezetId(ClaimData.FelhasznaloId);
model.SzervezetId = felhasznaloSzervezetId;
}
var coList = new AlkalmazottHelper(connection).SearchAlkalmazott(model.ConvertModelToCo(), felhasznaloSzervezetId);
var modelList = coList.Select(x => new AlkalmazottGridModel(x)).ToList();
modelList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var exportAttributeName = model.IsFromSzervezet ? AlkalmazottGridModel.DualisAlkalmazottExportAttributeId : AlkalmazottGridModel.AlkalmazottExportAttributeId;
var sheetName = model.IsFromSzervezet ? DualisResource.TabOktatok : AlkalmazottResource.Alkalmazottak;
var fileName = model.IsFromSzervezet ? string.Format(AlkalmazottResource.DualisAlkalmazottTablazatExportFileName, DateTime.Now.ToString("yyyyMMddHHmm")) : AlkalmazottResource.AlkalmazottTablazatExportFileName;
return (gridParameter, modelList, exportAttributeName, sheetName, fileName);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteAlkalmazott([FromBody] int id)
{
if (id == ClaimData.FelhasznaloId)
{
throw new StatusError(HttpStatusCode.BadRequest, AlkalmazottResource.AlkalmazottNemTorolhetiOnmagat);
}
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
try
{
helper.DeleteAlkalmazott(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (CannotBeDeletedException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
catch (EntityDeleteFailedException ex)
{
var alkalmazottNev = helper.GetAlkalmazottNevById(id);
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, alkalmazottNev, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, errorMessage);
}
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public IHttpActionResult DeleteSelectedAlkalmazott(List<int> alkalmazottIdList)
{
var errorMsg = string.Empty;
var counter = 0;
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType());
foreach (var alkalmazottId in alkalmazottIdList)
{
try
{
helper.DeleteAlkalmazott(alkalmazottId);
counter++;
}
catch (CannotBeDeletedException ex)
{
errorMsg += $"{ex.Message}{Environment.NewLine}";
continue;
}
catch (EntityDeleteFailedException ex)
{
var alkalmazottNev = helper.GetAlkalmazottNevById(alkalmazottId);
var errorMessage = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, alkalmazottNev, ex.ConnectionErrorMessage);
errorMsg += $"{errorMessage}{Environment.NewLine}{Environment.NewLine}";
continue;
}
}
if (string.IsNullOrWhiteSpace(errorMsg))
{
return Json(new { Message = string.Format(ErrorResource.NSorTorlesSikeres, counter) });
}
if (counter > 0)
{
errorMsg += Environment.NewLine + string.Format(ErrorResource.NSorTorlesSikeres, counter);
}
throw new StatusError(HttpStatusCode.BadRequest, errorMsg);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveAlkalmazott(AlkalmazottModel model)
{
try
{
AlkalmazottCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
var thelper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext));
var isKlebelsbergKozpontOrNSZFH =
featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokKlebelsberg)
|| featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokNSZFH);
var co = Helpers.AlkalmazottViewHelper.ConvertModelToCO(model);
var kellFollowUp = ClaimData.KovTanevID.HasValue
&& !ClaimData.IsKovTanev
&& model.MunkaugyAdatModel.AlkalmazasVege.HasValue
&& model.MunkaugyAdatModel.AlkalmazasVege.Value > new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo().UtolsoNap;
bool isLeltarSyncSuccess;
if (model.AlkalmazottId.HasValue)
{
isLeltarSyncSuccess = thelper.AddOrUpdateTeacher(_leltarClient, co, update: true, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev, isKlebelsbergKozpontOrNSZFH, alkalmazottId: model.AlkalmazottId.Value, kellFollowUp: kellFollowUp);
}
else
{
isLeltarSyncSuccess = thelper.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev, isKlebelsbergKozpontOrNSZFH, kellFollowUp: kellFollowUp);
}
return Request.CreateResponse(HttpStatusCode.OK, isLeltarSyncSuccess);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
catch (Check4TValidacioExistsException)
{
throw new StatusError(HttpStatusCode.BadRequest, CommonResource.AMegadottFelhasznaloiAdatokkalMarLetezikFelhasznalo);
}
catch (BlException e)
{
var error = new StatusError(HttpStatusCode.BadRequest, e.Message);
throw error;
}
}
public static void AlkalmazottCustomValidation(ModelStateDictionary modelState, AlkalmazottModel model)
{
if (!model.AlkalmazottId.IsEntityId())
{
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.Iranyitoszam_Str))
{
if (model.CimElerhetosegModel.Orszag == (int)OrszagTipusEnum.Magyarorszag)
{
modelState.AddModelError("CimElerhetosegModel.Iranyitoszam", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
}
else
{
modelState.AddModelError("CimElerhetosegModel.Iranyitoszam_Str", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
}
}
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.HelysegNev_Str))
{
if (model.CimElerhetosegModel.Orszag == (int)OrszagTipusEnum.Magyarorszag)
{
modelState.AddModelError("CimElerhetosegModel.HelysegNev", AlkalmazottResource.HelysegKitolteseKotelezo);
}
else
{
modelState.AddModelError("CimElerhetosegModel.HelysegNev_Str", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
}
}
if (model.CimElerhetosegModel.KozteruletNev == null)
{
modelState.AddModelError("CimElerhetosegModel.KozteruletNev", AlkalmazottResource.KozteruletNevenekKitolteseKotelezo);
}
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.KozteruletTipus_Str))
{
if (model.CimElerhetosegModel.Orszag != (int)OrszagTipusEnum.Magyarorszag)
{
modelState.AddModelError("CimElerhetosegModel.KozteruletTipus_Str", AlkalmazottResource.IranyitoszamKitolteseKotelezo);
}
}
if (model.CimElerhetosegModel.Hazszam == null)
{
modelState.AddModelError("CimElerhetosegModel.Hazszam", AlkalmazottResource.HazszamKitolteseKotelezo);
}
}
if ((model.AlapAdatModel.MunkavallaloCsaladiNev.Length + model.AlapAdatModel.MunkavallaloUtonev.Length) > Core.Constants.General.CsaladiEsUtonevEgyuttMaxLength)
{
modelState.AddModelError("AlapAdatModel.MunkavallaloCsaladiNev", AlkalmazottResource.ACsaladiEsUtonevEgyuttNemLehetHosszabb61Karakternel);
}
if ((model.AlapAdatModel.SzuletesiCsaladiNev.Length + model.AlapAdatModel.SzuletesiUtonev.Length) > Core.Constants.General.SzuletesiCsaladiEsUtonevEgyuttMaxLength)
{
modelState.AddModelError("AlapAdatModel.SzuletesiCsaladiNev", AlkalmazottResource.ASzuletesiCsaladiEsUtonevEgyuttNemLehetHosszabb64Karakternel);
}
if ((model.AlapAdatModel.AnyjaCsaladiNeve.Length + model.AlapAdatModel.AnyjaUtoneve.Length) > Core.Constants.General.AnyaCsaladiEsUtonevEgyuttMaxLength)
{
modelState.AddModelError("AlapAdatModel.AnyjaCsaladiNeve", AlkalmazottResource.AzAnyaCsaladiEsUtoneveEgyuttNemLehetHosszabb64Karakternel);
}
if (model.AlapAdatModel.SzuletesiIdo.HasValue && model.AlapAdatModel.SzuletesiIdo.Value > DateTime.Now.AddYears(-14))
{
modelState.AddModelError("AlapAdatModel.SzuletesiIdo", StringResourcesUtil.GetString(4299)); //A születési dátum minimum 14 évvel ez előttinek kell lennie!
}
if (model.AlapAdatModel.SzuletesiIdo.HasValue && model.AlapAdatModel.SzuletesiIdo.Value < DateTime.Now.AddYears(-100))
{
modelState.AddModelError("AlapAdatModel.SzuletesiIdo", StringResourcesUtil.GetString(4300)); //A születési dátum nem lehet a jelenlegi dátum előtt 100 évvel!
}
if (model.MunkaugyAdatModel.AlkalmazasKezdete.HasValue && model.MunkaugyAdatModel.AlkalmazasKezdete.Value < DateTime.Now.AddYears(-100))
{
modelState.AddModelError("MunkaugyAdatModel.AlkalmazasKezdete", AlkalmazottResource.AlkalmazasKezdeteNemLehetAJelenlegiDatumElott100evvel);
}
if (model.MunkaugyAdatModel.AlkalmazasVege.HasValue && model.MunkaugyAdatModel.AlkalmazasKezdete.HasValue &&
model.MunkaugyAdatModel.AlkalmazasVege.Value < model.MunkaugyAdatModel.AlkalmazasKezdete.Value)
{
modelState.AddModelError("MunkaugyAdatModel.AlkalmazasVege", AlkalmazottResource.AlkalmazasVegeNemLehetKorabbanMintAKezdete);
}
if (model.MunkaugyAdatModel.AlkalmazasKezdete.HasValue &&
model.AlapAdatModel.SzuletesiIdo.HasValue &&
model.MunkaugyAdatModel.AlkalmazasKezdete.Value < model.AlapAdatModel.SzuletesiIdo.Value)
{
modelState.AddModelError("MunkaugyAdatModel.AlkalmazasKezdete", StringResourcesUtil.GetString(4302)); //Az alkalmazás kezdete nem lehet korábban mint a születési dátum!
}
if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) || !string.IsNullOrWhiteSpace(model.JogosultsagModel.BelepesiNev))
{
var felhasznaloHelper = new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var tanevMegnevezes = GetTanevMegnevezesForBelepesCheck();
var anotherYearId = Kreta.Web.Classes.Utils.GetAnotherYearId();
var tanevIds = new List<int>
{
ClaimData.SelectedTanevID.Value
};
if (anotherYearId.HasValue)
{
tanevIds.Add(anotherYearId.Value);
}
var list = felhasznaloHelper.Check4TFelhOktAzonValidation(tanevIds, (int)Validation4TEnum.Alkalmazott,
"F", model.AlapAdatModel.SzuletesiNevElotag, model.AlapAdatModel.SzuletesiCsaladiNev, model.AlapAdatModel.SzuletesiUtonev,
"F", model.AlapAdatModel.AnyjaNeveElotag, model.AlapAdatModel.AnyjaCsaladiNeve, model.AlapAdatModel.AnyjaUtoneve,
model.AlapAdatModel.SzuletesiHely, model.AlapAdatModel.SzuletesiIdo, model.AlapAdatModel.OktatasiAzonosito, model.JogosultsagModel.BelepesiNev);
var selectedTanevUtkozes = list.Where(x => (!model.AlkalmazottId.HasValue || (x.ID != model.AlkalmazottId && x.ElozoTanevRekordId != model.AlkalmazottId))
&& x.TanevId == ClaimData.SelectedTanevID.Value).ToList();
var anotherTanevUtkozes = list.Where(x => (!model.AlkalmazottId.HasValue || (x.ID != model.AlkalmazottId && x.ElozoTanevRekordId != model.AlkalmazottId))
&& anotherYearId.HasValue && x.TanevId == anotherYearId.Value).ToList();
var followUpolnivalo = list.Find(x => (!model.AlkalmazottId.HasValue || x.ID != model.AlkalmazottId) && x.TanevId != ClaimData.SelectedTanevID.Value
&& x.ValidationType == (int)Validation4TEnum.Alkalmazott && SDAConvert.ToString(x.OktatasiAzonosito) == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito)
&& ((x.SzuletesiNevSorrend == "F" && model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiCsaladiNev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiUtonev)
|| (model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiUtonev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiCsaladiNev))
&& SDAConvert.ToString(model.AlapAdatModel.SzuletesiNevElotag) == x.SzuletesiNevElotag
&& ((x.AnyjaNevSorrend == "F" && model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaCsaladiNev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaUtonev)
|| (model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaUtonev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaCsaladiNev))
&& SDAConvert.ToString(model.AlapAdatModel.AnyjaNeveElotag) == x.AnyjaElotag
&& x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito)
&& x.SzuletesiHely == SDAConvert.ToString(model.AlapAdatModel.SzuletesiHely) && x.SzuletesiIdo == model.AlapAdatModel.SzuletesiIdo);
if (followUpolnivalo != null)
{
model.FollowUpolniId = followUpolnivalo.ID;
}
if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) && selectedTanevUtkozes.Any(x => x.OktatasiAzonosito == model.AlapAdatModel.OktatasiAzonosito && x.ValidationType == (int)Validation4TEnum.Alkalmazott))
{
modelState.AddModelError("AlapAdatModel.OktatasiAzonosito", string.Format(ErrorResource.OktatasiAzonositoFoglaltAltal, string.Join(", ", selectedTanevUtkozes
.Where(x => x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito) && x.ValidationType == (int)Validation4TEnum.Alkalmazott)
.Select(x => x.NyomtatasiNev)), string.Empty));
}
else if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) && followUpolnivalo == null &&
anotherTanevUtkozes.Any(x => x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito) && x.ValidationType == (int)Validation4TEnum.Alkalmazott))
{
modelState.AddModelError("AlapAdatModel.OktatasiAzonosito", string.Format(ErrorResource.OktatasiAzonositoFoglaltAltal, string.Join(", ", anotherTanevUtkozes
.Where(x => x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito) && !x.GondviseloId.HasValue && x.ValidationType == (int)Validation4TEnum.Alkalmazott)
.Select(x => x.NyomtatasiNev)), tanevMegnevezes));
}
var selectedTanevUtkozesForBejelentkezesiNev = selectedTanevUtkozes.Where(x => x.BejelentkezesiNev?.ToComparableString() == model.JogosultsagModel.BelepesiNev?.ToComparableString());
var anotherTanevUtkozesForBejelentkezesiNev = anotherYearId.HasValue && followUpolnivalo == null ? anotherTanevUtkozes.Where(x => x.BejelentkezesiNev?.ToComparableString() == model.JogosultsagModel.BelepesiNev?.ToComparableString()) : new List<Felh4TOktAzonValidationCo>();
TanuloLogic.FelhasznalonevValidacio(modelState, "JogosultsagModel.BelepesiNev", selectedTanevUtkozesForBejelentkezesiNev, anotherTanevUtkozesForBejelentkezesiNev, tanevMegnevezes);
if (!model.MunkaugyAdatModel.BetoltetlenAllashely && model.AlapAdatModel.SzuletesiIdo.HasValue)
{
if (list.Any(x => (!model.AlkalmazottId.HasValue || x.ID != model.AlkalmazottId) && x.TanevId == ClaimData.SelectedTanevID.Value
&& x.ValidationType == (int)Validation4TEnum.Alkalmazott
&& ((x.SzuletesiNevSorrend == "F" && model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiCsaladiNev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiUtonev)
|| (model.AlapAdatModel.SzuletesiCsaladiNev == x.SzuletesiUtonev && model.AlapAdatModel.SzuletesiUtonev == x.SzuletesiCsaladiNev))
&& SDAConvert.ToString(model.AlapAdatModel.SzuletesiNevElotag) == x.SzuletesiNevElotag
&& ((x.AnyjaNevSorrend == "F" && model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaCsaladiNev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaUtonev)
|| (model.AlapAdatModel.AnyjaCsaladiNeve == x.AnyjaUtonev && model.AlapAdatModel.AnyjaUtoneve == x.AnyjaCsaladiNev))
&& SDAConvert.ToString(model.AlapAdatModel.AnyjaNeveElotag) == x.AnyjaElotag
&& SDAConvert.ToString(model.JogosultsagModel.BelepesiNev) == x.BejelentkezesiNev
&& x.OktatasiAzonosito == SDAConvert.ToString(model.AlapAdatModel.OktatasiAzonosito)
&& x.SzuletesiHely == SDAConvert.ToString(model.AlapAdatModel.SzuletesiHely) && x.SzuletesiIdo == model.AlapAdatModel.SzuletesiIdo))
{
throw new Check4TValidacioExistsException(string.Empty);
}
}
}
if (model.AlapAdatModel.Allampolgarsag == model.AlapAdatModel.Allampolgarsag2)
{
modelState.AddModelError("AlapAdatModel.Allampolgarsag2", ErrorResource.MegegyezoAllapolgarsag);
}
if (ClaimData.IsSzakkepzoIntezmeny && !string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito) && !BusinessLogic.Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(model.AlapAdatModel.OktatasiAzonosito))
{
modelState.AddModelError("AlapAdatModel.OktatasiAzonosito", ErrorResource.AMegadottOktatasiAzonositoHibas);
}
if (!string.IsNullOrWhiteSpace(model.AlapAdatModel.AdoazonositoJel))
{
var rgx = new Regex(@"^\d{10}$");
if (!rgx.IsMatch(model.AlapAdatModel.AdoazonositoJel))
{
modelState.AddModelError("AlapAdatModel.AdoazonositoJel", AlkalmazottResource.AdoazonositoJelFormatumaNemMegfelelo);
}
}
Kreta.Web.Classes.Utils.TajSzamValidation(modelState, "AlapAdatModel.TajSzam", model.AlapAdatModel.TajSzam);
if (model.JogosultsagModel != null)
{
if (!string.IsNullOrWhiteSpace(model.JogosultsagModel.BelepesiNev) && model.JogosultsagModel.BelepesiNev.Trim().Length == 0)
{
throw new StatusError(HttpStatusCode.BadRequest, StringResourcesUtil.GetString(5488));
}
}
if (model.CimElerhetosegModel != null)
{
Kreta.Web.Classes.Utils.TelefonSzamValidation(modelState, model.CimElerhetosegModel.Telefon, model.CimElerhetosegModel.TelefonTipus, TelefonszamTulajdonosEnum.AlkalmazottElsodleges);
Kreta.Web.Classes.Utils.TelefonSzamValidation(modelState, model.CimElerhetosegModel.Telefon2, model.CimElerhetosegModel.TelefonTipus2, TelefonszamTulajdonosEnum.AlkalmazottMasodlagos);
}
if (model.MunkaugyAdatModel.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Reszmunkaidos && !model.MunkaugyAdatModel.ReszmunkaidosSzazalek.HasValue)
{
modelState.AddModelError("MunkaugyAdatModel.ReszmunkaidosSzazalek", ErrorResource.AReszmunkaidoSzazalekMezoMegadasaKotelezoAMunkaugyiAdatokTabFulon);
}
if (model.MunkaugyAdatModel.FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado && !model.MunkaugyAdatModel.Oraszam.HasValue)
{
modelState.AddModelError("MunkaugyAdatModel.Oraszam", ErrorResource.AzOraszamMegadasaKotelezoAMunkaugyiAdatokTabFulon);
}
if (model.MunkaugyAdatModel.MunkaKor == (int)MunkakorTipusEnum.iskolaor)
{
if (!model.AlkalmazottId.HasValue)
{
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.Emailcim))
{
modelState.AddModelError("MunkaugyAdatModel.Emailcim", ErrorResource.EmailCimMegadasaKotelezo);
}
if (string.IsNullOrWhiteSpace(model.CimElerhetosegModel.Telefon))
{
modelState.AddModelError("MunkaugyAdatModel.Telefon", ErrorResource.TelefonszamMegadasaKotelezo);
}
if (!model.CimElerhetosegModel.EmailTipus.HasValue)
{
modelState.AddModelError("MunkaugyAdatModel.EmailTipus", ErrorResource.EmailTipusMegadasaKotelezo);
}
if (!model.CimElerhetosegModel.TelefonTipus.HasValue)
{
modelState.AddModelError("MunkaugyAdatModel.TelefonTipus", ErrorResource.TelefonTipusKotelezo);
}
}
else
{
var thelper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var data = thelper.GetTanarAdatok(model.AlkalmazottId.Value);
if (string.IsNullOrWhiteSpace(data.Email))
{
modelState.AddModelError("MunkaugyAdatModel.Emailcim", ErrorResource.EmailCimMegadasaKotelezo);
}
if (string.IsNullOrWhiteSpace(data.Telefon))
{
modelState.AddModelError("MunkaugyAdatModel.Telefon", ErrorResource.TelefonszamMegadasaKotelezo);
}
}
}
if (!model.MunkaugyAdatModel.VezetoiOraszamOka.IsEntityId() && !model.MunkaugyAdatModel.IsDualisKepzohelyFromSzervezet)
{
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
modelState.AddModelError("MunkaugyAdatModel.VezetoiOraszamOka", isNszfhUjSzkt ? ErrorResource.VezetoiMegbizasMegadasaKotelezo : ErrorResource.VezetoiOraszamOkaMegadasaKotelezo);
}
//Ha aktív tanévben módosítunk
if (ClaimData.KovTanevID.HasValue && ClaimData.IsActivTanev && !model.MunkaugyAdatModel.IsDualisKepzohelyFromSzervezet)
{
if (new TanevHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetTanevInfo(ClaimData.KovTanevID).IsKivalaszthato)
{
var felhelyHelper = new FeladatEllatasiHelyHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (model.MunkaugyAdatModel.FeladatellatasiHely.HasValue)
{
var kovtanevFelhely = felhelyHelper.GetKovTanevIdByAktTanevId(model.MunkaugyAdatModel.FeladatellatasiHely.Value);
//NOTE: Ha a kiválasztott felhely nem létezik a következő tanévben, és nem még választott a következő tanévre felhelyet, akkor hibát dobunk
if (!kovtanevFelhely.IsEntityId() && !model.MunkaugyAdatModel.FeladatellatasiHelyKovTanev.HasValue)
{
modelState.AddModelError("MunkaugyAdatModel.FeladatellatasiHely", AlkalmazottResource.KovTanevesFelhelyNemLetezik);
}
}
}
}
var isSzakkepzoJuttatas = new IntezmenyHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetIntezmenyiAdatok().IsSzakkepzoJuttatas;
if (model.MunkaugyAdatModel.IsApaczaiMentor && (ClaimData.IsSzakkepzoIntezmeny || isSzakkepzoJuttatas))
{
if (string.IsNullOrWhiteSpace(model.AlapAdatModel.MunkavallaloCsaladiNev)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.MunkavallaloUtonev)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.SzuletesiCsaladiNev)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.SzuletesiUtonev)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.AnyjaCsaladiNeve)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.AnyjaUtoneve)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.SzuletesiHely)
|| !model.AlapAdatModel.SzuletesiIdo.HasValue
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.TajSzam)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.AdoazonositoJel)
|| string.IsNullOrWhiteSpace(model.AlapAdatModel.OktatasiAzonosito)
|| !model.MunkaugyAdatModel.IsAlkalmazottMentorAdatokKitoltve)
{
modelState.AddModelError("MunkaugyAdatModel.IsAlkalmazottMentorAdatokKitoltve", ErrorResource.MentoradatokMegadasaKotelezoKerjukMindenMegallapodashozSzuksegesAdatotRogzitsen);
}
}
else if (model.AlkalmazottId.HasValue && !model.MunkaugyAdatModel.IsApaczaiMentor && (ClaimData.IsSzakkepzoIntezmeny || isSzakkepzoJuttatas))
{
var connectionType = ConnectionTypeExtensions.GetSessionConnectionType();
var thelper = new TanarHelper(connectionType);
var data = thelper.GetTanarAdatok(model.AlkalmazottId.Value);
if (data.IsApaczaiMentor && thelper.HasTanarMentorCsoport(model.AlkalmazottId.Value))
{
modelState.AddModelError("MunkaugyAdatModel.IsApaczaiMentor", ErrorResource.NemAllithatoAlkalmazottMentorCsoporttal);
}
}
}
public static string GetTanevMegnevezesForBelepesCheck() => ClaimData.IsKovTanev ? ErrorResource.AzAktualisTaneven : ErrorResource.AKovetkezoTaneven;
private static void AlkalmazottTobbesModCustomValidation(ModelStateDictionary modelState, AlkalmazottModModel model)
{
if (model.AlkalmazasKezdete.HasValue && model.AlkalmazasKezdete.Value < DateTime.Now.AddYears(-100))
{
modelState.AddModelError("model.AlkalmazasKezdete", AlkalmazottResource.AlkalmazasKezdeteNemLehetAJelenlegiDatumElott100evvel);
}
if (model.AlkalmazasVege.HasValue && model.AlkalmazasKezdete.HasValue && model.AlkalmazasVege.Value < model.AlkalmazasKezdete.Value)
{
modelState.AddModelError("model.AlkalmazasVege", AlkalmazottResource.AlkalmazasVegeNemLehetKorabbanMintAKezdete);
}
}
#region Elérhetőség info tab
public DataSourceResult GetElerhetosegCimGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegCimGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportElerhetosegCimGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegCimGridData(id, request);
return GetElerhetosegCimExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ElerhetosegCimExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ElerhetosegCimExportFileName}_{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 GetElerhetosegCimExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegCimModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ElerhetosegCimModel>(AlkalmazottInfoModel.ElerhetosegCimModel.ElerhetosegCimExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegCimModel> modelList, string alkalmazottNev) GetElerhetosegCimGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTeacherAddressDataCoList(id);
var modelList = new List<AlkalmazottInfoModel.ElerhetosegCimModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.ElerhetosegCimModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
public DataSourceResult GetElerhetosegTelefonGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegTelefonGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportElerhetosegTelefonGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegTelefonGridData(id, request);
return GetElerhetosegTelefonExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ElerhetosegTelefonExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ElerhetosegTelefonExportFileName}_{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 GetElerhetosegTelefonExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegTelefonModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ElerhetosegTelefonModel>(AlkalmazottInfoModel.ElerhetosegTelefonModel.ElerhetosegTelefonExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegTelefonModel> modelList, string alkalmazottNev) GetElerhetosegTelefonGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTeacherPhonesCoList(id);
var modelList = new List<AlkalmazottInfoModel.ElerhetosegTelefonModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.ElerhetosegTelefonModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
public DataSourceResult GetElerhetosegEmailGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegEmailGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportElerhetosegEmailGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetElerhetosegEmailGridData(id, request);
return GetElerhetosegEmailExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ElerhetosegEmailExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ElerhetosegEmailExportFileName}_{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 GetElerhetosegEmailExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegEmailModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ElerhetosegEmailModel>(AlkalmazottInfoModel.ElerhetosegEmailModel.ElerhetosegEmailExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ElerhetosegEmailModel> modelList, string alkalmazottNev) GetElerhetosegEmailGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTeacherEmailsCoList(id);
var modelList = new List<AlkalmazottInfoModel.ElerhetosegEmailModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.ElerhetosegEmailModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
#endregion
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public DataSourceResult GetAlkalmazottElerhetosegCimGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetCim(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public DataSourceResult GetAlkalmazottElerhetosegTelGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetTelefonSzam(int.Parse(id));
return ds.ToDataSourceResult();
}
[ApiRolePackageAuthorize(KretaClaimPackages.Adminisztrator.ClaimValue, KretaClaimPackages.Dualis_Admin.ClaimValue)]
public DataSourceResult GetAlkalmazottElerhetosegEmailGrid(string id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var helper = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType());
helper.GridParameters = Converter.GridParameter(request);
var ds = helper.GetEmails(int.Parse(id));
return ds.ToDataSourceResult();
}
public CimElerhetosegModel GetAlkalmazottElerhetosegCim(int id)
{
var co = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetAlkalmazottCimById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegCim(CimElerhetosegModel model)
{
if (ModelState.IsValid)
{
try
{
var co = CimElerhetosegModel.ConvertModelToFelhasznaloElerhetosegCo(model);
new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).AlkalmazottCimMentese(co, ClaimData.KovTanevID);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegCim([FromBody] int id)
{
try
{
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AlkalmazottGondviseloCimTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AlkalmazottResource.Cim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetAlkalmazottElerhetosegTel(int id)
{
var co = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetAlkalmazottElerhetosegTelById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegTel(CimElerhetosegModel model)
{
Classes.Utils.TelefonSzamValidation(ModelState, model.Telefon, model.TelefonTipus, TelefonszamTulajdonosEnum.Alkalmazott);
AlkalmazottLogic.AlkalmazottTelefonCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
var co = CimElerhetosegModel.ConvertModelToFelhasznaloElerhetosegTelCo(model);
try
{
new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ValidateForDuplicateEntriesAlkalmazottElerhetoseg<string>(co.FelhasznaloId, co.Telefonszam, ValidateElerhetosegType.Telefon, co.TelefonTipusa, co.ID);
new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).FelhasznaloElerhetosegTelMentese(co, ClaimData.KovTanevID);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegTel([FromBody] int id)
{
try
{
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AlkalmazottElerhetosegTelTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AlkalmazottResource.Telefonszam, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
public CimElerhetosegModel GetAlkalmazottElerhetosegEmail(int id)
{
var co = new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).GetAlkalmazottElerhetosegEmailById(id);
return CimElerhetosegModel.ConvertCoToModel(co);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage SaveElerhetosegEmail(CimElerhetosegModel model)
{
AlkalmazottLogic.AlkalmazottEmailCustomValidation(ModelState, model);
if (ModelState.IsValid)
{
var co = CimElerhetosegModel.ConvertModelToFelhasznaloElerhetosegEmailCo(model);
try
{
new AlkalmazottHelper(ConnectionTypeExtensions.GetSessionConnectionType()).ValidateForDuplicateEntriesAlkalmazottElerhetoseg<string>(co.FelhasznaloId, co.EmailCim, ValidateElerhetosegType.Telefon, co.EmailTipusa, co.ID);
new FelhasznaloHelper(ConnectionTypeExtensions.GetSessionConnectionType()).FelhasznaloElerhetosegEmailMentese(co, ClaimData.KovTanevID);
}
catch (BlException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
[HttpPost]
[ApiValidateAjaxAntiForgeryToken]
public HttpResponseMessage DeleteElerhetosegEmail([FromBody] int id)
{
try
{
new AlkalmazottHelper(ConnectionTypeExtensions.GetActiveSessionConnectionType()).AlkalmazottElerhetosegEmailTorlese(id);
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (EntityDeleteFailedException ex)
{
var uzenet = string.Format(ErrorResource.NemTorolhetoKapcsolatMiatt, AlkalmazottResource.EmailCim, ex.ConnectionErrorMessage);
throw new StatusError(HttpStatusCode.BadRequest, uzenet);
}
}
#region Foglalkozás tab
public DataSourceResult GetFoglalkozasGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetFoglalkozasGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportFoglalkozasGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetFoglalkozasGridData(id, request);
return GetFoglalkozasExportFile(gridParameter, modelList, AdatszolgaltatasokResource.FoglalkozasExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.FoglalkozasExportFileName}_{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 GetFoglalkozasExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.FoglalkozasModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.FoglalkozasModel>(AlkalmazottInfoModel.FoglalkozasModel.FoglalkozasExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.FoglalkozasModel> modelList, string alkalmazottNev) GetFoglalkozasGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTeacherRoutinesCoList(id);
var modelList = new List<AlkalmazottInfoModel.FoglalkozasModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.FoglalkozasModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
#endregion
#region Órarendi Óra tab
public DataSourceResult GetOrarendiOraGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetOrarendiOraGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportOrarendiOraGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetOrarendiOraGridData(id, request);
return GetOrarendiOraExportFile(gridParameter, modelList, AdatszolgaltatasokResource.OrarendiOraExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.OrarendiOraExportFileName}_{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 GetOrarendiOraExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.OrarendiOraModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.OrarendiOraModel>(AlkalmazottInfoModel.OrarendiOraModel.OrarendiOraExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.OrarendiOraModel> modelList, string alkalmazottNev) GetOrarendiOraGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTeacherSubjectsHoursCoList(id);
var modelList = new List<AlkalmazottInfoModel.OrarendiOraModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.OrarendiOraModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
#endregion
#region Tanmenet tab
public DataSourceResult GetTanmenetGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetTanmenetGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportTanmenetGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetTanmenetGridData(id, request);
return GetTanmenetExportFile(gridParameter, modelList, AdatszolgaltatasokResource.TanmenetExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.TanmenetExportFileName}_{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 GetTanmenetExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.TanmenetModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.TanmenetModel>(AlkalmazottInfoModel.TanmenetModel.TanmenetExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.TanmenetModel> modelList, string alkalmazottNev) GetTanmenetGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTanarTanmenetCoList(id);
var modelList = new List<AlkalmazottInfoModel.TanmenetModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.TanmenetModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
#endregion
#region Megtartott órák tab
public DataSourceResult GetMegtartottTanoraGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetMegtartottTanoraGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportMegtartottTanoraGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetMegtartottTanoraGridData(id, request);
return GetMegtartottTanoraExportFile(gridParameter, modelList, AdatszolgaltatasokResource.MegtartottTanoraExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.MegtartottTanoraExportFileName}_{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 GetMegtartottTanoraExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.MegtartottTanoraModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.MegtartottTanoraModel>(AlkalmazottInfoModel.MegtartottTanoraModel.MegtartottTanoraExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.MegtartottTanoraModel> modelList, string alkalmazottNev) GetMegtartottTanoraGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetMegtartottTanoraCoList(id);
var modelList = new List<AlkalmazottInfoModel.MegtartottTanoraModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.MegtartottTanoraModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
#endregion
#region Értékelés tab
public DataSourceResult GetErtekelesGrid(int id, [ModelBinder(typeof(ModelBinder.DataSourceRequestModelBinder))] DataSourceRequest request)
{
var (gridParameter, modelList, alkalmazottNev) = GetErtekelesGridData(id, request);
return modelList.ToDataSourceResult(gridParameter);
}
public HttpResponseMessage GetExportErtekelesGrid(int id, DataSourceRequest request)
{
try
{
var (gridParameter, modelList, alkalmazottNev) = GetErtekelesGridData(id, request);
return GetErtekelesExportFile(gridParameter, modelList, AdatszolgaltatasokResource.ErtekelesExportSheetName, $"{alkalmazottNev}_{AdatszolgaltatasokResource.ErtekelesExportFileName}_{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 GetErtekelesExportFile(GridParameters gridParameter, List<AlkalmazottInfoModel.ErtekelesModel> modelList, string worksheetName, string fileName, int tanevId)
{
var orderedList = modelList.SortingAndPaging(gridParameter.OrderDictionary);
var simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottInfoModel.ErtekelesModel>(AlkalmazottInfoModel.ErtekelesModel.ErtekelesExportAttributeId);
var memoryStream = SimpleExportLogic.GetExport(worksheetName, simpleExportColumnCos, orderedList, tanevId);
return HttpResponseExtensions.GetFileHttpResponse(memoryStream.ToArray(), fileName);
}
private (GridParameters gridParameter, List<AlkalmazottInfoModel.ErtekelesModel> modelList, string alkalmazottNev) GetErtekelesGridData(int id, DataSourceRequest request)
{
var gridParameter = Converter.GridParameter(request);
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
var coList = helper.GetTanarErtekelesCoList(id);
var modelList = new List<AlkalmazottInfoModel.ErtekelesModel>();
foreach (var co in coList)
{
var gridModel = new AlkalmazottInfoModel.ErtekelesModel(co);
modelList.Add(gridModel);
}
return (gridParameter, modelList, helper.GetTanarAdatok(id).NyomtatasiNev);
}
#endregion
public HttpResponseMessage SaveModAlkalmazott(AlkalmazottModModel model)
{
if (!model.IsFromSzervezet)
{
AlkalmazottTobbesModCustomValidation(ModelState, model);
}
if (ModelState.IsValid)
{
try
{
var featureContext = (IFeatureContext)Request.GetDependencyScope().GetService(typeof(IFeatureContext));
var isKlebelsbergKozpontOrNSZFH =
featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokKlebelsberg)
|| featureContext.IsEnabled(Core.Constants.FeatureName.MunkaugyiAdatokNSZFH);
var co = model.IsFromSzervezet ? ConvertSzervezetAlkalmazottModModelToCO(model) : ConvertAlkalmazottModModelToCO(model);
var isNszfhUjSzkt = ClaimData.IsSelectedTanev20_21OrLater && ClaimData.IsSzakkepzoIntezmeny;
if (string.IsNullOrWhiteSpace(model.AlkalmazottArray))
{
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
if (!model.IsFromSzervezet)
{
helper.AlkalmazottTobbesModify(co, model.NeedUpdateMunkaidoAdatai, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt);
}
else
{
helper.SzervezetAlkalmazottTobbesModify(co);
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
var alkalmazottArray = model.AlkalmazottArray.Split(',');
foreach (var item in alkalmazottArray)
{
if (!string.IsNullOrWhiteSpace(item))
{
var helper = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
co.AlkalmazottId = int.Parse(item);
if (!model.IsFromSzervezet)
{
helper.AlkalmazottTobbesModify(co, model.NeedUpdateMunkaidoAdatai, isKlebelsbergKozpontOrNSZFH, isNszfhUjSzkt);
}
else
{
helper.SzervezetAlkalmazottTobbesModify(co);
}
}
}
return new HttpResponseMessage(HttpStatusCode.OK);
}
catch (BlException e)
{
throw new StatusError(HttpStatusCode.BadRequest, e.Message);
}
}
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
private TanarTobbesModCO ConvertAlkalmazottModModelToCO(AlkalmazottModModel model)
{
return new TanarTobbesModCO()
{
AlkalmazottId = model.AlkalmazottId,
AlkalmazottArray = model.AlkalmazottArray,
Nem = model.ModifyNem,
PedagogusFokozat = model.PedagogusFokozat,
KotelezoOraszam = model.Oraszam,
MunkaidoKedvezmenyOka = model.MunkaidoKedvezmenyOka,
MunkaidoKedvezmenyOraszam = model.MunkaidoKedvezmenyOraszam,
MunkaKor = model.MunkaKor,
FoglalkoztatasiJogviszony = model.FoglalkoztatasiJogviszony,
AlkalmazasKezdete = model.AlkalmazasKezdete,
FeladatellatasiHely = model.FeladatellatasiHely,
GyESGyed = model.TartosHelyettesites,
Foallasu = model.Foallasu,
Nyugdijas = model.Nyugdijas,
AlkalmazasVege = model.AlkalmazasVege,
FoglalkoztatasTipusa = model.FoglalkoztatasTipusa,
ReszmunkaidosSzazalek = model.ReszmunkaidosSzazalek,
VezetoiOraszamOka = model.VezetoiOraszamOka,
Szakvizsga = model.Szakvizsga,
//SzabadAllashely = model.SzabadAllashely,
SzakertoiVagyVizsgaelnokiTevekenysegu = model.SzakertoiVagyVizsgaelnokiTevekenysegu,
SzakmaiTovabbkepzes = model.SzakmaiTovabbkepzes,
SzakertoMesterpedagogusKutatotanar = model.SzakertoMesterpedagogusKutatotanar,
VezetoPedagogusVezetoOvodaPedagogus = model.VezetoPedagogusVezetoOvodaPedagogus,
Attanito = model.Attanito,
AttanitoMasIntezmeny = model.AttanitoMasIntezmeny,
IsAttanitoSzCnBelul = model.IsAttanitoSzCnBelul,
AllandoHelyettesitesre = model.AllandoHelyettesitesre,
IsKuldhetoPedMinositesSzRnek = model.IsKuldhetoPedMinositesSzRnek,
OktatoiFeladatokatIsEllat = GetOktatoiFeladatokatIsEllat(model),
IsOsztalyfonok = model.IsOsztalyfonok,
IsInternetetOktCelraHasznal = model.IsInternetetOktCelraHasznal,
IsInformatKepIsmRendelkezik = model.IsInformatKepIsmRendelkezik,
IsIktEszkozoketLgalabb40Hasznal = model.IsIktEszkozoketLgalabb40Hasznal,
HasEfopEszkoz = model.HasEfopEszkoz,
};
}
private TanarTobbesModCO ConvertSzervezetAlkalmazottModModelToCO(AlkalmazottModModel model)
{
return new TanarTobbesModCO()
{
AlkalmazottId = model.AlkalmazottId,
AlkalmazottArray = model.AlkalmazottArray,
Nem = model.ModifyNem,
OktatoSzervezetId = model.OktatoSzervezetId
};
}
private int? GetOktatoiFeladatokatIsEllat(AlkalmazottModModel model)
{
if (model.MunkaKor.HasValue)
{
if (Core.Constants.NszfhTovabbiMunkakorTipusIdList.Contains(model.MunkaKor.Value))
{
return model.OktatoiFeladatokatIsEllat;
}
return (int)IgenNemEnum.Nem;
}
return null;
}
[NonAction]
public HttpResponseMessage SaveDualisKepzohelyiOktato(DualisKepzohelyiOktatoModel model, bool isFromSzervezet)
{
var co = new TanarAdatCO()
{
Nem = (int)NemEnum.Ferfi,
NevElotag = model.NevEloTag,
Elotag = model.NevEloTag,
SzuletesiNevElotag = model.NevEloTag,
SzuletesiCsaladiNev = AlkalmazottResource.DualisCsaladNev,
SzuletesiUtonev = AlkalmazottResource.KulsoGyakorlatiUtoNev,
AnyjaCsaladiNeve = AlkalmazottResource.DualisCsaladNev,
AnyjaUtoneve = model.NevEloTag,
MunkavallaloCsaladiNev = model.CsaladiNev,
MunkavallaloUtonev = model.Utonev,
FeladatellatasiHely = model.FeladatellatasiHely,
SzuletesiHely = AlkalmazottResource.Ismeretlen,
SzuletesiIdo = new DateTime(1950, 01, 01),
MunkaKor = model.MunkaKor,
FoglalkoztatasiJogviszony = (int)MunkaviszonyTipusEnum.na,
BetoltetlenAllashely = false,
VezetoiOraszamOka = (int)VezetoiOraszamokTipusEnum.Nincs,
IsDualisKepzohelyiOktato = true,
DualisKepzohelyNeve = model.DualisKepzohelyNeve,
DualisKepzohelyAdoszama = model.DualisKepzohelyAdoszama,
SzervezetId = model.OktatoSzervezetId,
IsSzakiranyuOktatasertFelelos = model.IsSzakiranyuOktatasertFelelos,
BelepesiNev = model.JogosultsagModel.BelepesiNev,
Jelszo = model.JogosultsagModel.Jelszo,
JogosultsagiSzint = ClaimData.IsActivTanev ? model.JogosultsagModel.JogosultsagiSzint.Select(int.Parse).ToList() : new List<int> { (int)SzerepkorTipusEnum.Naplo }
};
if (isFromSzervezet && model.OktatoSzervezetId.IsEntityId())
{
var szervezetCo = new SzervezetHelper(ConnectionTypeExtensions.GetSessionConnectionType()).GetDualisKepzohelyById(model.OktatoSzervezetId.Value);
co.DualisKepzohelyNeve = szervezetCo.KepzohelyNeve;
co.DualisKepzohelyAdoszama = szervezetCo.KepzohelyAdoszama;
}
var h = new TanarHelper(ConnectionTypeExtensions.GetSessionConnectionType());
h.AddOrUpdateTeacher(_leltarClient, co, update: false, isSzirIntezmeny: ClaimData.IsSzirIntezmeny, ClaimData.IsActivTanev, isFromSzervezet: isFromSzervezet, isDualis: true);
return new HttpResponseMessage(HttpStatusCode.OK);
}
}
}