kreta/Kreta.BusinessLogic/HelperClasses/ImportCo/FelhasznaloBelepestImportCo.cs
2024-03-13 00:33:46 +01:00

575 lines
30 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text.RegularExpressions;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Validation;
using Kreta.Core;
using Kreta.Core.ConnectionType;
using Kreta.Core.CustomAttributes;
using Kreta.Enums;
using Kreta.Enums.ManualEnums;
using Kreta.Framework;
using Kreta.Framework.Security.PasswordCrypting;
using Kreta.Framework.Util;
using Kreta.Resources;
using Newtonsoft.Json;
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
{
public class FelhasznaloBelepesImportCo : BaseImportCo
{
[JsonIgnore]
public List<FelhasznaloBelepesImportItemCo> MainImportItemList { get; set; } = new List<FelhasznaloBelepesImportItemCo>();
[JsonIgnore]
public List<FelhasznaloBelepesImportItemCo> NemImportalhatoItemList { get; set; } = new List<FelhasznaloBelepesImportItemCo>();
[JsonProperty("T_FELHASZNALOBELEPES_OSSZES")]
public List<FelhasznaloBelepesImportJsonItemCo> MainImportJsonItemList { get; set; }
[JsonIgnore]
public List<FelhasznaloBelepesItemCo> FelhasznaloBelepesCoList { get; set; }
[JsonIgnore]
public FelhasznaloBelepesExportImportTipusEnum TipusEnum { get; set; }
[JsonIgnore]
public bool IsGeneraltFileLetoltes { get; set; }
[JsonIgnore]
public bool IsEmailKuldes { get; set; }
public Dictionary<int, List<ValidationResult>> Validate(IConnectionType connectionType, bool isSzakkepzoIntezmeny)
{
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
foreach (FelhasznaloBelepesImportItemCo importItem in MainImportItemList)
{
var validationResultList = new List<ValidationResult>();
//NOTE: Az import item-eket egyesével levalidáljuk!
var blValidator = new BlValidator(importItem);
if (!blValidator.IsValid)
{
validationResultList.AddRange(blValidator.ErrorList);
}
if (!string.IsNullOrWhiteSpace(importItem.BejelentkezesiNev))
{
string bejelentkezesiNevToCompare = importItem.BejelentkezesiNev.ToComparableString();
//NOTE: Levalidáljuk, hogy létezik-e a bejelentkezesi név a db-ben, de nem saját maga(azaz csak jelszót változtat)!
var utkozoNevek = FelhasznaloBelepesCoList.Where(x =>
(importItem.FelhasznaloBelepes == null || x.Id != importItem.FelhasznaloBelepes.Id) &&
x.BejelentkezesiNevComparableString == bejelentkezesiNevToCompare);
FelhasznalonevValidacio(validationResultList, utkozoNevek);
OktatasiAzonositoValidacio(validationResultList, importItem.OktatasiAzonosito?.ToComparableString(), isSzakkepzoIntezmeny);
//NOTE: Levalidáljuk, hogy ugyanazzal a bejelentkezesi névvel csak egyszer szerepeljen tanuló a dokumnetumban!
if (MainImportItemList.Count(x => x.BejelentkezesiNev.ToComparableString() == bejelentkezesiNevToCompare) > 1)
{
validationResultList.Add(new ValidationResult(string.Format(ImportExportFelhasznaloBelepesResource.AMegadottFelhasznalonev0TobbSorbanIsSzerepel, importItem.BejelentkezesiNev)));
}
}
if (TipusEnum == FelhasznaloBelepesExportImportTipusEnum.Gondviselo)
{
if (importItem.GondviseloRokonsagiFokId.HasValue && importItem.TanuloId.HasValue)
{
var helper = new TanuloHelper(connectionType);
if (helper.HasDuplicatedGondviselo(importItem.TanuloId.Value))
{
validationResultList.Add(new ValidationResult(ImportExportFelhasznaloBelepesResource.ATanulohozTobbAzonosNevuEsRokonsagiFokuGondviseloVanFelveve));
}
}
}
if (validationResultList.Count > 0)
{
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
}
}
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
List<string> duplicatedRowConditonTextList;
switch (TipusEnum)
{
case FelhasznaloBelepesExportImportTipusEnum.Alkalmazott:
duplicatedRowConditonTextList = new List<string>
{
ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottNeve,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottOktatasiAzonosito,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottSzuletesiDatuma
};
break;
case FelhasznaloBelepesExportImportTipusEnum.Tanulo:
duplicatedRowConditonTextList = new List<string>
{
ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloNevSzulidoOktazon,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloSzuletesiDatuma
};
break;
case FelhasznaloBelepesExportImportTipusEnum.Gondviselo:
duplicatedRowConditonTextList = new List<string>
{
ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloNeve,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloSzuletesiDatuma,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloNeve,
ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloRokonsagiFoka
};
break;
default:
throw new Exception();
}
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
return validationResultDictionary;
}
private static void FelhasznalonevValidacio(List<ValidationResult> validationResultList, IEnumerable<FelhasznaloBelepesItemCo> utkozoNevek)
{
var nincsGondviseloUtkozoNevek = utkozoNevek.Where(x => x.GondviseloId == null);
if (nincsGondviseloUtkozoNevek.Any())
{
var tanevMegnevezes = nincsGondviseloUtkozoNevek.All(x => string.IsNullOrWhiteSpace(x.AnotherYearTanevMegnevezes)) ? string.Empty : nincsGondviseloUtkozoNevek.First().AnotherYearTanevMegnevezes;
var errorMsg = string.Format(ErrorResource.FelhasznalonevFoglaltAltal, string.Join(", ", nincsGondviseloUtkozoNevek.Select(x => x.FelhasznaloNyomtatasiNev)), tanevMegnevezes);
validationResultList.Add(new ValidationResult(errorMsg));
}
var vanGondviseloUtkozoNevek = utkozoNevek.Where(x => x.GondviseloId != null);
if (vanGondviseloUtkozoNevek.Any())
{
var tanevMegnevezes = vanGondviseloUtkozoNevek.All(x => string.IsNullOrWhiteSpace(x.AnotherYearTanevMegnevezes)) ? string.Empty : vanGondviseloUtkozoNevek.First().AnotherYearTanevMegnevezes;
var errorMsg = string.Format(ErrorResource.FelhasznalonevFoglaltAltalGondviselo, string.Join(", ", vanGondviseloUtkozoNevek.Select(x => x.FelhasznaloNyomtatasiNev)), tanevMegnevezes);
validationResultList.Add(new ValidationResult(errorMsg));
}
}
private static void OktatasiAzonositoValidacio(List<ValidationResult> validationResultList, string oktatasiAzonosito, bool isSzakkepzoIntezmeny)
{
if (isSzakkepzoIntezmeny && !string.IsNullOrWhiteSpace(oktatasiAzonosito) && !Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(oktatasiAzonosito))
{
validationResultList.Add(new ValidationResult(ErrorResource.AMegadottOktatasiAzonositoHibas));
}
}
}
public class FelhasznaloBelepesImportItemCo : BaseImportItemCo, IValidatableObject
{
private readonly int _tanevId;
private FelhasznaloBelepesImportItemCo() { }
public FelhasznaloBelepesImportItemCo(int tanevId)
{
_tanevId = tanevId;
}
#region Fields
/// <summary>
/// Technikai paraméter(ek) a reflection-ös exporthoz.
/// </summary>
public const string AlkalmazottNemImportalhatoSorokExportAttributeId = nameof(AlkalmazottNemImportalhatoSorokExportAttributeId);
public const string TanuloNemImportalhatoSorokExportAttributeId = nameof(TanuloNemImportalhatoSorokExportAttributeId);
public const string GondviseloNemImportalhatoSorokExportAttributeId = nameof(GondviseloNemImportalhatoSorokExportAttributeId);
#endregion Fields
[SimpleExportColumn(AlkalmazottNemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottNeve), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloNeve), typeof(ImportExportFelhasznaloBelepesResource))]
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
public string NeveImportData { get; set; }
[SimpleExportColumn(AlkalmazottNemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottOktatasiAzonosito), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito), typeof(ImportExportFelhasznaloBelepesResource))]
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
public string OktatasiAzonositoImportData { get; set; }
[SimpleExportColumn(AlkalmazottNemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottSzuletesiDatuma), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloSzuletesiDatuma), typeof(ImportExportFelhasznaloBelepesResource))]
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
public string SzuletesiDatumaImportData { get; set; }
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloNeve), typeof(ImportExportFelhasznaloBelepesResource))]
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
public string GondviseloNeveImportData { get; set; }
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloRokonsagiFoka), typeof(ImportExportFelhasznaloBelepesResource))]
[MaxLength(250, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
public string GondviseloRokonsagiFokaImportData { get; set; }
[SimpleExportColumn(AlkalmazottNemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottFelhasznaloneve), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(TanuloNemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloFelhasznaloneve), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 05, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloFelhasznaloneve), typeof(ImportExportFelhasznaloBelepesResource))]
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
public string FelhasznaloNeveImportData { get; set; }
[SimpleExportColumn(AlkalmazottNemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottJelszava), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(TanuloNemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloJelszava), typeof(ImportExportFelhasznaloBelepesResource))]
[SimpleExportColumn(GondviseloNemImportalhatoSorokExportAttributeId, 06, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloJelszava), typeof(ImportExportFelhasznaloBelepesResource))]
[StringLength(Constants.General.JelszoMaximumKarakterekSzama, MinimumLength = Constants.General.JelszoMinimumKarakterekSzama, ErrorMessageResourceName = nameof(ErrorResource.AJelszonakMin0Max0KarakterbolKellAllnia), ErrorMessageResourceType = typeof(ErrorResource))]
public string JelszavaImportData { get; set; }
[SimpleExportColumn(TanuloNemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloNevSzulidoOktazon), typeof(ImportExportFelhasznaloBelepesResource), nameof(ImportExportFelhasznaloBelepesResource.ImportSheetNameTanuloNevSzulidoOktazon), typeof(ImportExportFelhasznaloBelepesResource))]
public string TanuloNevOktAzonSzulDatumImportData { get; set; }
public string Elotag => GetElotagFromTeljesNev(NeveImportData);
public string Vezeteknev => GetVezeteknevFromTeljesNev(NeveImportData);
public string Keresztnev => GetKeresztnevekFromTeljesNev(NeveImportData);
public string OktatasiAzonosito => GetStringValue(OktatasiAzonositoImportData);
public DateTime? SzuletesiIdo => GetDateTimeValue(SzuletesiDatumaImportData);
public string SzuletesiIdoString => GetDateTimeString(SzuletesiIdo);
public string GondviseloNev => GetStringValue(GondviseloNeveImportData);
public int? GondviseloRokonsagiFokId => ((int)GeneratedAdatszotarTipusEnum.RokonsagiFok).GetItemIdByTypeAndName(GondviseloRokonsagiFokaImportData, _tanevId);
public string BejelentkezesiNev => GetStringValue(FelhasznaloNeveImportData);
public string JelszoPlainText => GetStringValue(JelszavaImportData);
public FelhasznaloBelepesItemCo FelhasznaloBelepes { get; set; }
public int? AlkalmazottId => FelhasznaloBelepes?.AlkalmazottId;
public int? TanuloId => FelhasznaloBelepes?.TanuloId;
public int? GondviseloId => FelhasznaloBelepes?.GondviseloId;
public FelhasznaloBelepesExportImportTipusEnum TipusEnum { get; set; }
#region Validate
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
string nevError;
string oktatasiAzonositoError;
string szuletesiDatumaError;
string felhasznaloNeveText;
string jelszavaText;
switch (TipusEnum)
{
case FelhasznaloBelepesExportImportTipusEnum.Alkalmazott:
nevError = string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottNeve);
oktatasiAzonositoError = string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottOktatasiAzonosito);
szuletesiDatumaError = string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottSzuletesiDatuma);
felhasznaloNeveText = ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottFelhasznaloneve;
jelszavaText = ImportExportFelhasznaloBelepesResource.ImportHeaderNameAlkalmazottJelszava;
break;
case FelhasznaloBelepesExportImportTipusEnum.Tanulo:
nevError = $"{ImportExportFelhasznaloBelepesResource.HianyosTanuloNevAdat} ({ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito})";
oktatasiAzonositoError = $"{ImportExportFelhasznaloBelepesResource.HianyosTanuloNevAdat} ({ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito})";
szuletesiDatumaError = $"{ImportExportFelhasznaloBelepesResource.HianyosTanuloNevAdat} ({ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito})";
felhasznaloNeveText = ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloFelhasznaloneve;
jelszavaText = ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloJelszava;
break;
case FelhasznaloBelepesExportImportTipusEnum.Gondviselo:
nevError = string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloNeve);
oktatasiAzonositoError = string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloOktatasiAzonosito);
szuletesiDatumaError = string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameTanuloSzuletesiDatuma);
felhasznaloNeveText = ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloFelhasznaloneve;
jelszavaText = ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloJelszava;
break;
default:
throw new ArgumentOutOfRangeException();
}
if (string.IsNullOrWhiteSpace(NeveImportData))
{
yield return new ValidationResult(nevError);
}
if (!string.IsNullOrWhiteSpace(NeveImportData) && (string.IsNullOrWhiteSpace(Vezeteknev) || string.IsNullOrWhiteSpace(Keresztnev)))
{
switch (TipusEnum)
{
case FelhasznaloBelepesExportImportTipusEnum.Alkalmazott:
yield return new ValidationResult(ImportExportFelhasznaloBelepesResource.AzAlkalmazottNeveFormatumaNemMegfelelo);
break;
case FelhasznaloBelepesExportImportTipusEnum.Gondviselo:
case FelhasznaloBelepesExportImportTipusEnum.Tanulo:
yield return new ValidationResult(ImportExportFelhasznaloBelepesResource.ATanuloNeveFormatumaNemMegfelelo);
break;
}
}
if (string.IsNullOrWhiteSpace(OktatasiAzonositoImportData))
{
yield return new ValidationResult(oktatasiAzonositoError);
}
else
{
switch (TipusEnum)
{
case FelhasznaloBelepesExportImportTipusEnum.Tanulo:
case FelhasznaloBelepesExportImportTipusEnum.Gondviselo:
{
if (!Regex.Match(OktatasiAzonosito, Constants.RegularExpressions.OktatasiAzonositoTanulo).Success)
{
yield return new ValidationResult(ErrorResource.OktatasiAzonositoFormatumaNemMegfeleloTanulo);
}
break;
}
case FelhasznaloBelepesExportImportTipusEnum.Alkalmazott:
{
if (!Regex.Match(OktatasiAzonosito, Constants.RegularExpressions.OktatasiAzonosito).Success)
{
yield return new ValidationResult(ErrorResource.OktatasiAzonositoFormatumaNemMegfelelo);
}
break;
}
default:
throw new ArgumentOutOfRangeException();
}
}
if (string.IsNullOrWhiteSpace(SzuletesiDatumaImportData))
{
yield return new ValidationResult(szuletesiDatumaError);
}
else
{
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
if (!SzuletesiIdo.HasValue)
{
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidDatumFormat, szuletesiDatumaError.ToLowerInvariant(), SzuletesiDatumaImportData));
}
else
{
var minimumDate = new DateTime(Now.Date.Year - 123, 1, 1);
var maximumDate = new DateTime(Now.Date.Year, 1, 1);
var minOk = SzuletesiIdo >= minimumDate;
var maxOk = SzuletesiIdo <= maximumDate;
if (!minOk || !maxOk)
{
yield return new ValidationResult(
string.Format(ImportExportCommonResource.ASzuletesiIdoCsakKozeEshet,
minimumDate.ToString(Constants.ToStringPattern.HungarianDate),
maximumDate.ToString(Constants.ToStringPattern.HungarianDate)));
}
}
}
if (TipusEnum == FelhasznaloBelepesExportImportTipusEnum.Gondviselo)
{
if (string.IsNullOrWhiteSpace(GondviseloNeveImportData))
{
yield return new ValidationResult(string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloNeve));
}
if (!string.IsNullOrWhiteSpace(GondviseloNeveImportData) && (string.IsNullOrWhiteSpace(GetVezeteknevFromTeljesNev(GondviseloNev)) || string.IsNullOrWhiteSpace(GetKeresztnevekFromTeljesNev(GondviseloNev))))
{
yield return new ValidationResult(ImportExportFelhasznaloBelepesResource.AGondviseloNeveFormatumaNemMegfelelo);
}
if (string.IsNullOrWhiteSpace(GondviseloRokonsagiFokaImportData))
{
yield return new ValidationResult(string.Format(ErrorResource.Required, ImportExportFelhasznaloBelepesResource.ImportHeaderNameGondviseloRokonsagiFoka));
}
else
{
if (!GondviseloRokonsagiFokId.IsEntityId())
{
yield return new ValidationResult(string.Format(ImportExportFelhasznaloBelepesResource.NincsIlyenRokonsagiFok, GondviseloRokonsagiFokaImportData));
}
}
}
if (string.IsNullOrWhiteSpace(FelhasznaloNeveImportData))
{
yield return new ValidationResult(string.Format(ErrorResource.Required, felhasznaloNeveText));
}
if (string.IsNullOrWhiteSpace(JelszavaImportData))
{
yield return new ValidationResult(string.Format(ErrorResource.Required, jelszavaText));
}
//NOTE: Ha van megadva bármilyen érték az import data-ban, hogy ne legyen dupla validálás a required miatt.
if (!string.IsNullOrWhiteSpace(NeveImportData) &&
!string.IsNullOrWhiteSpace(OktatasiAzonositoImportData) &&
!string.IsNullOrWhiteSpace(SzuletesiDatumaImportData))
{
switch (TipusEnum)
{
case FelhasznaloBelepesExportImportTipusEnum.Alkalmazott:
if (!AlkalmazottId.IsEntityId() || TanuloId.IsEntityId() || GondviseloId.IsEntityId())
{
yield return new ValidationResult(ImportExportFelhasznaloBelepesResource.AzAlkalmazottNemSzerepelAzAdatbazisban);
}
break;
case FelhasznaloBelepesExportImportTipusEnum.Tanulo:
if (AlkalmazottId.IsEntityId() || !TanuloId.IsEntityId() || GondviseloId.IsEntityId())
{
yield return new ValidationResult(ImportExportFelhasznaloBelepesResource.ATanuloNemSzerepelAzAdatbazisban);
}
break;
case FelhasznaloBelepesExportImportTipusEnum.Gondviselo:
if (AlkalmazottId.IsEntityId() || !TanuloId.IsEntityId() && !string.IsNullOrWhiteSpace(GondviseloNeveImportData) && !string.IsNullOrWhiteSpace(GondviseloRokonsagiFokaImportData) && !GondviseloId.IsEntityId())
{
yield return new ValidationResult(ImportExportFelhasznaloBelepesResource.AGondviseloNemSzerepelAzAdatbazisban);
}
break;
default:
throw new Exception();
}
}
}
#endregion Validate
}
public class FelhasznaloBelepesImportJsonItemCo : BaseImportJsonItemCo
{
public FelhasznaloBelepesImportJsonItemCo(FelhasznaloBelepesImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
{
string jelszoPlainText = importItemCo.JelszoPlainText;
string salt = SaltGenerator.GenerateSalt();
string jelszo = BasePasswordCrypter.EncodePasswordSHA1(jelszoPlainText, salt);
Id = importItemCo.Id;
Elotag = importItemCo.Elotag;
Vezeteknev = importItemCo.Vezeteknev;
Keresztnev = importItemCo.Keresztnev;
OktatasiAzonosito = importItemCo.OktatasiAzonositoImportData;
//NOTE: Az SzuletesiIdo.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van születési ideje!
SzuletesiIdo = importItemCo.SzuletesiIdo.Value;
BejelentkezesiNev = importItemCo.BejelentkezesiNev;
Jelszo = jelszo;
JelszoPlainText = jelszoPlainText;
Salt = salt;
AlkalmazottId = importItemCo.AlkalmazottId;
TanuloId = importItemCo.TanuloId;
GondviseloId = importItemCo.GondviseloId;
switch (importItemCo.TipusEnum)
{
case FelhasznaloBelepesExportImportTipusEnum.Alkalmazott:
//NOTE: Az AlkalmazottId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van id-ja!
FelhasznaloId = importItemCo.AlkalmazottId.Value;
IsKotelezoValtoztatni = SDAConvert.ToSDABoolean(false);
break;
case FelhasznaloBelepesExportImportTipusEnum.Tanulo:
//NOTE: Az TanuloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van id-ja!
FelhasznaloId = importItemCo.TanuloId.Value;
IsKotelezoValtoztatni = SDAConvert.ToSDABoolean(true);
break;
case FelhasznaloBelepesExportImportTipusEnum.Gondviselo:
//NOTE: Az TanuloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van id-ja!
FelhasznaloId = importItemCo.TanuloId.Value;
GondviseloNev = importItemCo.GondviseloNev;
GondviseloRokonsagiFokId = importItemCo.GondviseloRokonsagiFokId;
IsKotelezoValtoztatni = SDAConvert.ToSDABoolean(true);
break;
}
LineNumber = importItemCo.LineNumber;
Operation = importItemCo.Operation;
}
#region Import Json Properties
[JsonIgnore]
public string Elotag { get; set; }
[JsonIgnore]
public string Vezeteknev { get; set; }
[JsonIgnore]
public string Keresztnev { get; set; }
[JsonIgnore]
public string GondviseloNev { get; set; }
[JsonIgnore]
public int? GondviseloRokonsagiFokId { get; set; }
[JsonIgnore]
public string OktatasiAzonosito { get; set; }
[JsonIgnore]
public string JelszoPlainText { get; set; }
[JsonIgnore]
public int? AlkalmazottId { get; set; }
[JsonIgnore]
public int? TanuloId { get; set; }
[JsonIgnore]
public DateTime SzuletesiIdo { get; set; }
[JsonProperty("C_BEJELENTKEZESINEV")]
public string BejelentkezesiNev { get; set; }
[JsonProperty("C_JELSZO")]
public string Jelszo { get; set; }
[JsonProperty("C_FELHASZNALOID")]
public int FelhasznaloId { get; set; }
[JsonProperty("C_GONDVISELOID")]
public int? GondviseloId { get; set; }
[JsonProperty("C_SO")]
public string Salt { get; set; }
[JsonProperty("C_KOTELEZOVALTOZTATNI")]
public string IsKotelezoValtoztatni { get; set; }
#region Default Required Import Json Properties
[JsonProperty("C_MEGHIUSULTBELEPESEK")]
public int MeghiusultBelepesek => 0;
[JsonProperty("C_UTOLSOBELEPES")]
public string UtolsoBelepes => null;
[JsonProperty("C_JELSZOVALTOZTATASIDEJE")]
public string JelszovaltoztatasIdeje => null;
[JsonProperty("C_NEPTUNNAPLOJELSZO")]
public string NeptunNaploJelszo => null;
#endregion Default Required Import Json Properties
#endregion Import Json Properties
}
}