init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,779 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class AlkalmazottMunkaugyiAdatokImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<AlkalmazottMunkaugyiAdatokImportItemCo> MainImportItemList { get; set; } = new List<AlkalmazottMunkaugyiAdatokImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<AlkalmazottMunkaugyiAdatokImportItemCo> NemImportalhatoItemList { get; set; } = new List<AlkalmazottMunkaugyiAdatokImportItemCo>();
|
||||
|
||||
[JsonProperty("T_MUNKAUGYIADATOK_OSSZES")]
|
||||
public List<AlkalmazottMunkaugyiAdatokImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<AlkalmazottMunkaugyiAdatokCo> AlkalmazottMunkaugyiAdatokCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate(bool isSzakkepzoIntezmeny)
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (AlkalmazottMunkaugyiAdatokImportItemCo 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);
|
||||
}
|
||||
|
||||
//NOTE: Levalidáljuk, hogy az alkalmazott szerepel-e az adatbázisban!
|
||||
if (!AlkalmazottMunkaugyiAdatokCoList.Any(x =>
|
||||
$"{x.FelhasznaloVezeteknevComparableString} {x.FelhasznaloKeresztnevComparableString}" == $"{importItem.Vezeteknev?.ToComparableString()} {importItem.Keresztnev?.ToComparableString()}" &&
|
||||
x.FelhasznaloAnyjaNeveComparableString == importItem.AnyjaNeve?.ToComparableString() &&
|
||||
x.FelhasznaloSzuletesiIdo == importItem.SzuletesiIdo &&
|
||||
x.FelhasznaloSzuletesiHelyComparableString == importItem.SzuletesiHely?.ToComparableString()))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaAPedagogusNemSzerepelAzAdatbazisban));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(importItem.OktatasiAzonosito))
|
||||
{
|
||||
string oktatasiAzonositoToCompare = importItem.OktatasiAzonosito.ToComparableString();
|
||||
|
||||
if (isSzakkepzoIntezmeny && !string.IsNullOrWhiteSpace(oktatasiAzonositoToCompare) && !Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(oktatasiAzonositoToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ErrorResource.AMegadottOktatasiAzonositoHibas));
|
||||
}
|
||||
|
||||
//NOTE: Levalidáljuk, hogy az oktatási azonosítóval szerepel-e alkalmazott az adatbázisban, de nem a alkalmazott maga az!
|
||||
if (AlkalmazottMunkaugyiAdatokCoList.Any(x =>
|
||||
x.FelhasznaloOktatasiAzonositoComparableString == oktatasiAzonositoToCompare && (
|
||||
$"{x.FelhasznaloVezeteknevComparableString} {x.FelhasznaloKeresztnevComparableString}" != $"{importItem.Vezeteknev?.ToComparableString()} {importItem.Keresztnev?.ToComparableString()}" ||
|
||||
x.FelhasznaloAnyjaNeveComparableString != importItem.AnyjaNeve?.ToComparableString() ||
|
||||
x.FelhasznaloSzuletesiIdo != importItem.SzuletesiIdo ||
|
||||
x.FelhasznaloSzuletesiHelyComparableString != importItem.SzuletesiHely?.ToComparableString())))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaAMegadottOktatasiAzonositovalSzerepelPedagogusAzAdatbazisban, importItem.PedagogusOktatasiAzonositoImportData)));
|
||||
}
|
||||
|
||||
//NOTE: Levalidáljuk, hogy ugyanazzal az oktatási azonosítóval csak egyszer szerepeljen alkalmazott a dokumnetumban!
|
||||
if (MainImportItemList.Count(x => x.OktatasiAzonosito.ToComparableString() == oktatasiAzonositoToCompare) > 1)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportCommonResource.OktatasiAzonositoExistsMoreTimesInDocument, importItem.OktatasiAzonosito)));
|
||||
}
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusVezetekneve,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusUtoneve,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusAnyjaNeve,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiDatuma,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiHelye
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class AlkalmazottMunkaugyiAdatokImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private AlkalmazottMunkaugyiAdatokImportItemCo() { }
|
||||
|
||||
public AlkalmazottMunkaugyiAdatokImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Technikai paraméter(ek) a reflection-ös exporthoz.
|
||||
/// </summary>
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNeve), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNeve), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNevElotag), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNevElotag), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusNevElotagImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusVezetekneve), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusVezetekneve), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusVezetekneveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusUtoneve), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusUtoneve), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusUtoneveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusAnyjaNeve), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusAnyjaNeve), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusAnyjaNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 05, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiDatuma), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(25, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiDatuma), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusSzuletesiDatumaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 06, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiHelye), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiHelye), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusSzuletesiHelyeImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 07, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusOktatasiAzonosito), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(11, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[KretaRegularExpression(Constants.RegularExpressions.OktatasiAzonosito, ErrorMessageResourceName = nameof(ErrorResource.OktatasiAzonositoFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusOktatasiAzonosito), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusOktatasiAzonositoImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 08, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAdoazonositoJel), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(10, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAdoazonositoJel), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string AdoazonositoJelImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 09, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusFokozat), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusFokozat), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string PedagogusFokozatImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 10, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkakor), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkakor), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string MunkakorImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 11, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasiJogviszony), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasiJogviszony), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string FoglalkoztatasiJogviszonyImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 12, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string KotelezoOraszamaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 13, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string MunkaidokedvezmenyOraszamaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 14, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFeladattalTerheltOraszamOka), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFeladattalTerheltOraszamOka), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string FeladattalTerheltOraszamOkaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 15, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAlkalmazasKezdete), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(25, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAlkalmazasKezdete), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string AlkalmazasKezdeteImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 16, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasTipusa), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasTipusa), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string FoglalkoztatasTipusaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 17, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameVezetoiOraszamOka), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameVezetoiOraszamOka), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string VezetoiOraszamOkaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 18, nameof(CommonResource.Feladatellatasihely), typeof(CommonResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(CommonResource.Feladatellatasihely), ResourceType = typeof(CommonResource))]
|
||||
public string FeladatellatasiHelyImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 19, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosanTavollevo), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosanTavollevo), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string TartosanTavollevoImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 20, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameBetoltetlenAllashely), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameBetoltetlenAllashely), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string BetoltetlenAllashelyImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 21, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKulsoAlkalmazott), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKulsoAlkalmazott), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string KulsoAlkalmazottImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 22, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoallasu), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoallasu), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string FoallasuImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 23, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameNyugdijasTovabbfoglalkoztatott), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameNyugdijasTovabbfoglalkoztatott), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string NyugdijasTovabbfoglalkoztatottImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 24, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoiVagyvizsgaelnokiTevekenyseg), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoiVagyvizsgaelnokiTevekenyseg), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string SzakertoiVagyVizsgaelnokiTevekenyseguImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 25, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakmaiTovabbkepzes), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakmaiTovabbkepzes), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string SzakmaiTovabbkepzesImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 26, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakvizsga), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakvizsga), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string SzakvizsgaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 27, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoIntezmenyenBelul), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoIntezmenyenBelul), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string AttanitoIntezmenyenBelulImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 28, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoMasIntezmenynel), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoMasIntezmenynel), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string IsAttanitoMasIntezmenynelImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 29, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosHelyettesites), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosHelyettesites), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string IsTartosanTavollevoHelyettesitesImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 30, nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoSzaktanacsado), typeof(ImportExportAlkalmazottMunkaugyiAdatokResource), ForcedType = typeof(bool))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoSzaktanacsado), ResourceType = typeof(ImportExportAlkalmazottMunkaugyiAdatokResource))]
|
||||
public string SzakertoImportData { get; set; }
|
||||
|
||||
public string Nev => GetStringValue(PedagogusNeveImportData);
|
||||
|
||||
public string NevElotag => GetStringValue(PedagogusNevElotagImportData);
|
||||
|
||||
public string Vezeteknev => GetStringValue(PedagogusVezetekneveImportData);
|
||||
|
||||
public string Keresztnev => GetStringValue(PedagogusUtoneveImportData);
|
||||
|
||||
public string AnyjaNeve => GetStringValue(PedagogusAnyjaNeveImportData);
|
||||
|
||||
public DateTime? SzuletesiIdo => GetDateTimeValue(PedagogusSzuletesiDatumaImportData);
|
||||
|
||||
public string SzuletesiIdoString => GetDateTimeString(SzuletesiIdo);
|
||||
|
||||
public string SzuletesiHely => GetStringValue(PedagogusSzuletesiHelyeImportData);
|
||||
|
||||
public string AdoazonositoJel => GetStringValue(AdoazonositoJelImportData);
|
||||
|
||||
public int? BesorolasiFokozat => string.IsNullOrWhiteSpace(PedagogusFokozatImportData) ? (int)BesorolasiFokozatTipusEnum.na : ((int)GeneratedAdatszotarTipusEnum.BesorolasiFokozatTipus).GetItemIdByTypeAndName(PedagogusFokozatImportData, _tanevId);
|
||||
|
||||
public int? Munkakor => string.IsNullOrWhiteSpace(MunkakorImportData) ? (int)MunkakorTipusEnum.na : ((int)GeneratedAdatszotarTipusEnum.MunkakorTipus).GetItemIdByTypeAndName(MunkakorImportData, _tanevId);
|
||||
|
||||
public int? FoglalkoztatasiJogviszony => string.IsNullOrWhiteSpace(FoglalkoztatasiJogviszonyImportData) ? (int)MunkaviszonyTipusEnum.na : ((int)GeneratedAdatszotarTipusEnum.MunkaviszonyTipus).GetItemIdByTypeAndName(FoglalkoztatasiJogviszonyImportData, _tanevId);
|
||||
|
||||
public int? FoglalkoztatasTipusa => string.IsNullOrWhiteSpace(FoglalkoztatasTipusaImportData) ? (int)FoglalkoztatasTipusaEnum.TeljesMunkaidos : ((int)GeneratedAdatszotarTipusEnum.FoglalkoztatasTipusa).GetItemIdByTypeAndName(FoglalkoztatasTipusaImportData, _tanevId);
|
||||
|
||||
public double? KotelezoOraszama => GetDoubleValue(KotelezoOraszamaImportData);
|
||||
|
||||
public double? MunkaidoKedvezmenyOraszama => GetDoubleValue(MunkaidokedvezmenyOraszamaImportData);
|
||||
|
||||
public int? MunkaidoKedvezmenyOka => string.IsNullOrWhiteSpace(FeladattalTerheltOraszamOkaImportData) ? (int)MunkaidoKedvezmenyOkaEnum.Na : ((int)GeneratedAdatszotarTipusEnum.MunkaidoKedvezmenyOka).GetItemIdByTypeAndName(FeladattalTerheltOraszamOkaImportData, _tanevId);
|
||||
|
||||
public int? VezetoiOraszamOka => string.IsNullOrWhiteSpace(VezetoiOraszamOkaImportData) ? (int)VezetoiOraszamokTipusEnum.Nincs : ((int)GeneratedAdatszotarTipusEnum.VezetoiOraszamokTipus).GetItemIdByTypeAndName(VezetoiOraszamOkaImportData, _tanevId);
|
||||
|
||||
public DateTime? AlkalmazasKezdete => GetDateTimeValue(AlkalmazasKezdeteImportData);
|
||||
|
||||
public string OktatasiAzonosito => GetStringValue(PedagogusOktatasiAzonositoImportData);
|
||||
|
||||
public string FeladatellatasiHely => GetStringValue(FeladatellatasiHelyImportData);
|
||||
|
||||
public bool? TartosTavollevo => GetBooleanValue(TartosanTavollevoImportData);
|
||||
|
||||
public bool? BetoltetlenAllashely => GetBooleanValue(BetoltetlenAllashelyImportData);
|
||||
|
||||
public bool? Szakerto => GetBooleanValue(SzakertoImportData);
|
||||
|
||||
public bool? Foallasu => GetBooleanValue(FoallasuImportData);
|
||||
|
||||
public bool? Nyugdijas => GetBooleanValue(NyugdijasTovabbfoglalkoztatottImportData);
|
||||
|
||||
public bool? SzakertoiVagyVizsgaelnokiTevekenysegu => GetBooleanValue(SzakertoiVagyVizsgaelnokiTevekenyseguImportData);
|
||||
|
||||
public bool? SzakmaiTovabbkepzes => GetBooleanValue(SzakmaiTovabbkepzesImportData);
|
||||
|
||||
public bool? Szakvizsga => GetBooleanValue(SzakvizsgaImportData);
|
||||
|
||||
public bool? Attanito => GetBooleanValue(AttanitoIntezmenyenBelulImportData);
|
||||
|
||||
public bool? AttanitoMasIntezmenynel => GetBooleanValue(IsAttanitoMasIntezmenynelImportData);
|
||||
|
||||
public bool? IsTartosTavolletHelyettesites => GetBooleanValue(IsTartosanTavollevoHelyettesitesImportData);
|
||||
|
||||
public int? FeladatellatasiHelyId { get; set; }
|
||||
|
||||
public bool? KulsoAlkalmazott => GetBooleanValue(KulsoAlkalmazottImportData);
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(PedagogusSzuletesiDatumaImportData))
|
||||
{
|
||||
//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, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiDatuma, PedagogusSzuletesiDatumaImportData));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(AlkalmazasKezdeteImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!AlkalmazasKezdete.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidDatumFormat, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAlkalmazasKezdete, AlkalmazasKezdeteImportData));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(PedagogusFokozatImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!BesorolasiFokozat.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenPedagogusFokozat);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(MunkakorImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!Munkakor.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenMunkakor);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(FoglalkoztatasiJogviszonyImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!FoglalkoztatasiJogviszony.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenFoglalkoztatasiJogviszony);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(FoglalkoztatasTipusaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!FoglalkoztatasTipusa.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenFoglalkoztatasTipusa);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(KotelezoOraszamaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!KotelezoOraszama.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNemMegfeleloAz0Formatuma, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (KotelezoOraszama < 0)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaAz0NemLehetKisebbMint0, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama));
|
||||
}
|
||||
else if (KotelezoOraszama > 50)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaAz0NemLehetNagyobbMint50, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (FoglalkoztatasTipusa == (int)FoglalkoztatasTipusaEnum.Oraado || VezetoiOraszamOka != (int)VezetoiOraszamokTipusEnum.Nincs)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaOraszamMegadasaKotelezo,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameVezetoiOraszamOka,
|
||||
ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasTipusa));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(MunkaidokedvezmenyOraszamaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!MunkaidoKedvezmenyOraszama.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNemMegfeleloAz0Formatuma, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MunkaidoKedvezmenyOraszama < 0)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaAz0NemLehetKisebbMint0, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama));
|
||||
}
|
||||
else if (MunkaidoKedvezmenyOraszama > 50)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaAz0NemLehetNagyobbMint50, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(FeladattalTerheltOraszamOkaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!MunkaidoKedvezmenyOka.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenFeladattalTerheltOraszamOka);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(VezetoiOraszamOkaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!VezetoiOraszamOka.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenVezetoiOraszamOka);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy létezik-e a feladatellátási hely a tanévben!
|
||||
if (!string.IsNullOrWhiteSpace(FeladatellatasiHely))
|
||||
{
|
||||
if (!FeladatellatasiHelyId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaNincsIlyenFeladatellatasiHelyEbbenATanevben);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(IsTartosanTavollevoHelyettesitesImportData))
|
||||
{
|
||||
if (!IsTartosTavolletHelyettesites.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosHelyettesites));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(TartosanTavollevoImportData))
|
||||
{
|
||||
if (!TartosTavollevo.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosanTavollevo));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(BetoltetlenAllashelyImportData))
|
||||
{
|
||||
if (!BetoltetlenAllashely.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameBetoltetlenAllashely));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(FoallasuImportData))
|
||||
{
|
||||
if (!Foallasu.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoallasu));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(NyugdijasTovabbfoglalkoztatottImportData))
|
||||
{
|
||||
if (!Nyugdijas.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameNyugdijasTovabbfoglalkoztatott));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(SzakertoiVagyVizsgaelnokiTevekenyseguImportData))
|
||||
{
|
||||
if (!SzakertoiVagyVizsgaelnokiTevekenysegu.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoiVagyvizsgaelnokiTevekenyseg));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(SzakmaiTovabbkepzesImportData))
|
||||
{
|
||||
if (!SzakmaiTovabbkepzes.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakmaiTovabbkepzes));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(SzakvizsgaImportData))
|
||||
{
|
||||
if (!Szakvizsga.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakvizsga));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(AttanitoIntezmenyenBelulImportData))
|
||||
{
|
||||
if (!Attanito.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoIntezmenyenBelul));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy valid-e az érték!
|
||||
if (!string.IsNullOrWhiteSpace(IsAttanitoMasIntezmenynelImportData))
|
||||
{
|
||||
if (!AttanitoMasIntezmenynel.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaErvenytelenAdatAz0MezobenAzAlabbiErtekeketLehetMegadni, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoMasIntezmenynel));
|
||||
}
|
||||
}
|
||||
|
||||
if (Szakerto.HasValue && Szakerto.Value &&
|
||||
BesorolasiFokozat.HasValue && (BesorolasiFokozat.Value != (int)BesorolasiFokozatTipusEnum.kutatotanar && BesorolasiFokozat.Value != (int)BesorolasiFokozatTipusEnum.mesterpedagogus))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportAlkalmazottMunkaugyiAdatokResource.HibaSzakertoSzaktanacsado);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class AlkalmazottMunkaugyiAdatokImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public AlkalmazottMunkaugyiAdatokImportJsonItemCo(AlkalmazottMunkaugyiAdatokImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
// T_ALKALMAZOTT
|
||||
PedagogusNeve = importItemCo.Nev;
|
||||
PedagogusElotag = importItemCo.NevElotag;
|
||||
PedagogusVezeteknev = importItemCo.Vezeteknev;
|
||||
PedagogusUtonev = importItemCo.Keresztnev;
|
||||
PedagogusAnyjaNeve = importItemCo.AnyjaNeve;
|
||||
SzuletesiDatum = importItemCo.SzuletesiIdo;
|
||||
SzuletesiHely = importItemCo.SzuletesiHely;
|
||||
AdoazonositoJel = importItemCo.AdoazonositoJel;
|
||||
IsFoallasu = importItemCo.Foallasu;
|
||||
IsSzakertoiVagyVizsgaelnokiTevekenysegu = importItemCo.SzakertoiVagyVizsgaelnokiTevekenysegu;
|
||||
IsSzakmaiTovabbkepzes = importItemCo.SzakmaiTovabbkepzes;
|
||||
IsSzakvizsga = importItemCo.Szakvizsga;
|
||||
OktatasiAzonosito = importItemCo.OktatasiAzonosito;
|
||||
// T_MUNKAUGYIADATOK
|
||||
BesorolasiFokozat = importItemCo.BesorolasiFokozat;
|
||||
Munkakor = importItemCo.Munkakor;
|
||||
Munkaviszony = importItemCo.FoglalkoztatasiJogviszony;
|
||||
KotelezoOraszam = importItemCo.KotelezoOraszama;
|
||||
MunkaidoKedvezmenyOraszam = importItemCo.MunkaidoKedvezmenyOraszama;
|
||||
MunkaidoKedvezmenyOka = importItemCo.MunkaidoKedvezmenyOka;
|
||||
AlkalmazasKezdete = importItemCo.AlkalmazasKezdete;
|
||||
FoglalkoztatasTipus = importItemCo.FoglalkoztatasTipusa;
|
||||
VezetoiOraszamOka = importItemCo.VezetoiOraszamOka;
|
||||
FeladataellatasiHely = importItemCo.FeladatellatasiHely;
|
||||
//NOTE: Az FeladatellatasiHelyId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van id-ja!
|
||||
FeladatellatasiHelyId = importItemCo.FeladatellatasiHelyId.Value;
|
||||
IsTartosTavollet = importItemCo.TartosTavollevo;
|
||||
IsTartosTavollevoHelyettesites = importItemCo.IsTartosTavolletHelyettesites;
|
||||
IsKulsoAlkalmazott = importItemCo.KulsoAlkalmazott;
|
||||
IsBetoltetlenAllashely = importItemCo.BetoltetlenAllashely;
|
||||
IsNyugdijas = importItemCo.Nyugdijas;
|
||||
IsAttanito = importItemCo.Attanito;
|
||||
IsAttanitoMasIntezmenynel = importItemCo.AttanitoMasIntezmenynel;
|
||||
IsSzakerto = importItemCo.Szakerto;
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Ignore Json Propreties
|
||||
|
||||
[JsonIgnore]
|
||||
public string PedagogusNeve { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string PedagogusElotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string PedagogusVezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string PedagogusUtonev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string PedagogusAnyjaNeve { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? SzuletesiDatum { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string SzuletesiHely { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string AdoazonositoJel { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string OktatasiAzonosito { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool? IsFoallasu { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool? IsSzakertoiVagyVizsgaelnokiTevekenysegu { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool? IsSzakmaiTovabbkepzes { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool? IsSzakvizsga { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FeladataellatasiHely { get; set; }
|
||||
|
||||
#endregion Ignore Json Propreties
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_ALKALMAZASKEZDETE")]
|
||||
public DateTime? AlkalmazasKezdete { get; set; }
|
||||
|
||||
[JsonProperty("C_KOTELEZOORASZAM")]
|
||||
public double? KotelezoOraszam { get; set; }
|
||||
|
||||
[JsonProperty("C_MUNKAIDOKEDVEZMENYORASZAM")]
|
||||
public double? MunkaidoKedvezmenyOraszam { get; set; }
|
||||
|
||||
[JsonProperty("C_MUNKAKORTIPUSA")]
|
||||
public int? Munkakor { get; set; }
|
||||
|
||||
[JsonProperty("C_MUNKAVISZONYTIPUSA")]
|
||||
public int? Munkaviszony { get; set; }
|
||||
|
||||
[JsonProperty("C_FOGLALKOZTATASTIPUS")]
|
||||
public int? FoglalkoztatasTipus { get; set; }
|
||||
|
||||
[JsonProperty("C_VEZETOIORASZAMOK")]
|
||||
public int? VezetoiOraszamOka { get; set; }
|
||||
|
||||
[JsonProperty("C_BETOLTETLENALLASHELY")]
|
||||
public bool? IsBetoltetlenAllashely { get; set; }
|
||||
|
||||
[JsonProperty("C_ISKULSOALKALMAZOTT")]
|
||||
public bool? IsKulsoAlkalmazott { get; set; }
|
||||
|
||||
[JsonProperty("C_TARTOSTAVOLLET")]
|
||||
public bool? IsTartosTavollet { get; set; }
|
||||
|
||||
[JsonProperty("C_MUNKAIDOKEDVEZMENYOKA")]
|
||||
public int? MunkaidoKedvezmenyOka { get; set; }
|
||||
|
||||
[JsonProperty("C_NYUGDIJAS")]
|
||||
public bool? IsNyugdijas { get; set; }
|
||||
|
||||
[JsonProperty("C_ATTANITO")]
|
||||
public bool? IsAttanito { get; set; }
|
||||
|
||||
[JsonProperty("C_FELADATELLATASIHELYID")]
|
||||
public int FeladatellatasiHelyId { get; set; }
|
||||
|
||||
[JsonProperty("C_ALKALMAZOTTID")]
|
||||
public int AlkalmazottId { get; set; }
|
||||
|
||||
[JsonProperty("C_BESOROLASIFOKOZAT")]
|
||||
public int? BesorolasiFokozat { get; set; }
|
||||
|
||||
[JsonProperty("C_ATTANITOMASINTEZMENYNEL")]
|
||||
public bool? IsAttanitoMasIntezmenynel { get; set; }
|
||||
|
||||
[JsonProperty("C_TARTOSHELYETTESITES")]
|
||||
public bool? IsTartosTavollevoHelyettesites { get; set; }
|
||||
|
||||
[JsonProperty("C_ISSZAKERTOKUTATOTANAR")]
|
||||
public bool? IsSzakerto { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ALKALMAZASMEGSZUNESE")]
|
||||
public DateTime? AlkalmazasMegszunese => null;
|
||||
|
||||
[JsonProperty("C_MUNKAIDOKEDVEZMENYOKASZOVEG")]
|
||||
public string MunkaidoKedvezmenyOkaSzoveg => "nincs";
|
||||
|
||||
[JsonProperty("C_PEDAGOGUSSTATUSZA")]
|
||||
public string PedagogusStatusza => string.Empty;
|
||||
|
||||
[JsonProperty("C_RESZMUNKAIDOSZAZALEK")]
|
||||
public int? ReszmunkaidoSzazalek => null;
|
||||
|
||||
[JsonProperty("C_UTAZOGYOGYPEDAGOGUS")]
|
||||
public string IsUtazoPedagogus => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_CSOKKENTETTMUNKAIDOS")]
|
||||
public string IsCsokkentettMunkaidos => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SZAKERTOMESTERPEDAGOGUS")]
|
||||
public string IsSzakertoMesterPedagogus => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SZABADALLASHELY")]
|
||||
public string IsSzabadAllashely => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
60
Kreta.BusinessLogic/HelperClasses/ImportCo/BaseImportCo.cs
Normal file
60
Kreta.BusinessLogic/HelperClasses/ImportCo/BaseImportCo.cs
Normal file
|
@ -0,0 +1,60 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kreta.Core;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public int ImportMuvelet { get; set; }
|
||||
|
||||
protected static void ValidateDuplicatedRows(Dictionary<int, List<ValidationResult>> validationResultDictionary, Dictionary<int, string> lineNumberCompareHashDictionary, List<string> duplicatedRowConditonTextList)
|
||||
{
|
||||
//NOTE: Levalidáljuk a duplikált sorokat!
|
||||
// Azért van szükség Dictionary-re, mert így nagyságrendekkel gyorsabb a keresés!
|
||||
// Először csoportosítjuk a sorokat egyezőség(compareHash) szerint.
|
||||
var duplicatedRowDictionary = new Dictionary<string, List<int>>();
|
||||
foreach (KeyValuePair<int, string> item in lineNumberCompareHashDictionary)
|
||||
{
|
||||
int lineNumber = item.Key;
|
||||
string compareHash = item.Value;
|
||||
if (compareHash == Constants.General.ImportMD5InvalidInput)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (duplicatedRowDictionary.ContainsKey(compareHash))
|
||||
{
|
||||
duplicatedRowDictionary[compareHash].Add(lineNumber);
|
||||
}
|
||||
else
|
||||
{
|
||||
duplicatedRowDictionary.Add(compareHash, new List<int> { lineNumber });
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha egynél több sor kerül egy elemhez, akkor kiírjuk hibának az adott sorokhoz, hogy többször szerepel.
|
||||
foreach (KeyValuePair<string, List<int>> item in duplicatedRowDictionary)
|
||||
{
|
||||
List<int> lineNumberList = item.Value;
|
||||
if (lineNumberList.Count > 1)
|
||||
{
|
||||
foreach (var lineNumber in lineNumberList)
|
||||
{
|
||||
var validationResult = new ValidationResult(string.Format(CommonResource.DuplicatedRow0, string.Join(", ", duplicatedRowConditonTextList)));
|
||||
if (validationResultDictionary.ContainsKey(lineNumber))
|
||||
{
|
||||
validationResultDictionary[lineNumber].Add(validationResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(lineNumber, new List<ValidationResult> { validationResult });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
166
Kreta.BusinessLogic/HelperClasses/ImportCo/BaseImportItemCo.cs
Normal file
166
Kreta.BusinessLogic/HelperClasses/ImportCo/BaseImportItemCo.cs
Normal file
|
@ -0,0 +1,166 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.RegularExpressions;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Core;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class BaseImportItemCo
|
||||
{
|
||||
public int? Id;
|
||||
|
||||
public int LineNumber { get; set; }
|
||||
|
||||
public int Operation { get; set; }
|
||||
|
||||
public string CompareHash { get; set; }
|
||||
|
||||
public List<string> ErrorList { get; set; } = new List<string>();
|
||||
|
||||
public DateTime Now => DateTime.Now;
|
||||
|
||||
#region Methods
|
||||
|
||||
public static bool? GetBooleanValue(string data, bool? defaultValue = null)
|
||||
{
|
||||
bool? result = !string.IsNullOrWhiteSpace(data) ? data.GetBooleanValueFromString() : defaultValue;
|
||||
return result;
|
||||
}
|
||||
|
||||
protected string GetStringValue(string data, string defaultValue = null)
|
||||
{
|
||||
string result = !string.IsNullOrWhiteSpace(data) ? data : defaultValue;
|
||||
return result;
|
||||
}
|
||||
|
||||
protected int? GetIntValue(string data, int? defaultValue = null)
|
||||
{
|
||||
int? result = !string.IsNullOrWhiteSpace(data) ? data.ToNullableInt() : defaultValue;
|
||||
return result;
|
||||
}
|
||||
|
||||
protected double? GetDoubleValue(string data, double? defaultValue = null)
|
||||
{
|
||||
double? result = !string.IsNullOrWhiteSpace(data) ? data.GetDoubleFromString() : defaultValue;
|
||||
return result;
|
||||
}
|
||||
|
||||
protected DateTime? GetDateTimeValue(string data, DateTime? defaultValue = null)
|
||||
{
|
||||
DateTime? result = !string.IsNullOrWhiteSpace(data) ? data.GetDateTimeFromString() : defaultValue;
|
||||
return result;
|
||||
}
|
||||
|
||||
public static DateTime? GetDateTimeValueFromTimeString(string data, DateTime? defaultValue = null)
|
||||
{
|
||||
var trimmed = data.ReplaceMultipleSpacesAndTrim();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(trimmed))
|
||||
{
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
var timeRegex = new Regex(@"([01]?[0-9]|2[0-3]):([0-5][0-9])");
|
||||
|
||||
var matches = timeRegex.Match(trimmed);
|
||||
|
||||
if (matches.Groups.Count < 3)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!int.TryParse(matches.Groups[1].Value.ReplaceMultipleSpacesAndTrim(), out var hours) ||
|
||||
!int.TryParse(matches.Groups[2].Value.ReplaceMultipleSpacesAndTrim(), out var minutes))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (hours < 0 || hours >= 24)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (minutes < 0 || minutes >= 60)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new DateTime(1900, 1, 1).AddHours(hours).AddMinutes(minutes);
|
||||
}
|
||||
|
||||
protected string GetDateTimeString(DateTime? data)
|
||||
{
|
||||
//NOTE: Azért a SortableDateTimePattern-t használjuk, mert az sql ezt a formátumot hibátlanul kezeli!
|
||||
string result = data?.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: Erre akkor van szükség, ha névegyezőség van, de külön személyről van szó. Akkor a születési dátummal tudjuk megkülönböztetni.
|
||||
// Az alábbi formátumot kell alkalmaznia a felhasználónak: Tanár Neve (1985.01.01.)
|
||||
protected DateTime? GetSzuletesIdoFromNev(string nevImportData)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(nevImportData))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
Regex regex = new Regex(@"\((.+?)\)");
|
||||
MatchCollection matchCollection = regex.Matches(nevImportData);
|
||||
DateTime? result = null;
|
||||
if (matchCollection.Count > 0)
|
||||
{
|
||||
result = matchCollection[0].Groups[1].Value.Replace(" ", string.Empty).GetDateTimeFromString();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
protected string GetElotagFromTeljesNev(string nevImportData)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(nevImportData))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var elotag = NevUtils.GetNevCo(nevImportData).Elotag;
|
||||
string result = string.IsNullOrWhiteSpace(elotag) ? null : elotag;
|
||||
return result;
|
||||
}
|
||||
|
||||
protected string GetVezeteknevFromTeljesNev(string nevImportData)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(nevImportData))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
string result = NevUtils.GetNevCo(nevImportData).Vezeteknev;
|
||||
return result;
|
||||
}
|
||||
|
||||
protected string GetKeresztnevekFromTeljesNev(string nevImportData)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(nevImportData))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
string result = NevUtils.GetNevCo(nevImportData).Keresztnev;
|
||||
return result;
|
||||
}
|
||||
|
||||
//NOTE: Ha a névben szerepelt születési dátum(a névegyezőségnél azzal különböztetjük meg), akkor azt levágva adjuk vissza a nevet.
|
||||
protected string GetNev(string nevImportData, DateTime? szuletesiIdo)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(nevImportData))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var result = szuletesiIdo != null ? nevImportData.Substring(0, nevImportData.IndexOf("(", StringComparison.Ordinal)).ReplaceMultipleSpacesAndTrim() : nevImportData;
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion Methods
|
||||
}
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
using System;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.Core;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class BaseImportJsonItemCo
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
private readonly int _intezmenyId;
|
||||
private readonly int _felhasznaloId;
|
||||
|
||||
public BaseImportJsonItemCo(int tanevId, int intezmenyId, int felhasznaloId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
_intezmenyId = intezmenyId;
|
||||
_felhasznaloId = felhasznaloId;
|
||||
}
|
||||
|
||||
[JsonProperty("ID")]
|
||||
public int? Id;
|
||||
|
||||
[JsonProperty("C_IMPORTALT")]
|
||||
public string Importalt => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_INTEZMENYID")]
|
||||
public int IntezmenyId => _intezmenyId;
|
||||
|
||||
[JsonProperty("C_TANEVID")]
|
||||
public int TanevId => _tanevId;
|
||||
|
||||
[JsonProperty("TOROLT")]
|
||||
public string Torolt => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("SERIAL")]
|
||||
public int? Serial => 0;
|
||||
|
||||
[JsonProperty("LASTCHANGED")]
|
||||
public string LastChanged => Now.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
[JsonProperty("CREATED")]
|
||||
public string Created => Now.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
[JsonProperty("MODIFIER")]
|
||||
public int Modifier => _felhasznaloId;
|
||||
|
||||
[JsonProperty("CREATOR")]
|
||||
public int Creator => _felhasznaloId;
|
||||
|
||||
[JsonProperty("ELOZOTANEVIREKORDID")]
|
||||
public int? ElozoTaneviRekordId => null;
|
||||
|
||||
[JsonProperty("Operation")]
|
||||
public int Operation { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime Now { get; set; } = DateTime.Now;
|
||||
|
||||
[JsonIgnore]
|
||||
public int LineNumber { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,423 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class BaseTantargyfelosztasImportCo : BaseImportCo
|
||||
{
|
||||
[JsonProperty("T_TANTARGY_OSSZES")]
|
||||
public List<TantargyImportJsonItemCo> TantargyImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_OSZTALYCSOPORT_OSSZES")]
|
||||
public List<OsztalyCsoportImportJsonItemCo> OsztalyCsoportImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_OSZTALY_OSSZES")]
|
||||
public List<OsztalyImportJsonItemCo> OsztalyImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_CSOPORT_OSSZES")]
|
||||
public List<CsoportImportJsonItemCo> CsoportImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int FeladatellatasiHelyId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<AlkalmazottItemCo> TanarCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<OsztalyItemCo> OsztalyCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<CsoportItemCo> CsoportCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TeremItemCo> TeremCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public FeladatEllatasiHelyCO FeladatellatasiHelyCo { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int FeladatKategoriaId { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate(List<BaseTantargyfelosztasImportItemCo> baseTantargyfelosztasImportItemList)
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (BaseTantargyfelosztasImportItemCo importItem in baseTantargyfelosztasImportItemList)
|
||||
{
|
||||
var validationResultList = new List<ValidationResult>();
|
||||
var isDualisElem = false;
|
||||
|
||||
//NOTE: Az import item-eket egyesével levalidáljuk!
|
||||
var blValidator = new BlValidator(importItem);
|
||||
if (!blValidator.IsValid)
|
||||
{
|
||||
validationResultList.AddRange(blValidator.ErrorList);
|
||||
}
|
||||
|
||||
//NOTE: Levalidáljuk, hogy a tanár szerepel-e az adatbázisban, ha nem üres string(illetve, ha több ugyanolyan nevű tanár szerepel, akkor megnézzük születési idő alapján is).
|
||||
// Azért nem BlValidator-ban, mert így csak egyszer kell lekérni a tanárlistát!
|
||||
var tanarNevToCompare = importItem.TanarNev?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(tanarNevToCompare))
|
||||
{
|
||||
if (!importItem.TanarSzuletesiIdo.HasValue && TanarCoList.All(x => x.FelhasznaloNyomtatasiNevComparableString != tanarNevToCompare) ||
|
||||
importItem.TanarSzuletesiIdo.HasValue && !TanarCoList.Any(x => x.FelhasznaloNyomtatasiNevComparableString == tanarNevToCompare && x.FelhasznaloSzuletesiIdo == importItem.TanarSzuletesiIdo))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportCommonResource.TanarIsNotInDatabase, importItem.TanarNevImportData)));
|
||||
}
|
||||
|
||||
if (!importItem.TanarSzuletesiIdo.HasValue && TanarCoList.Count(x => x.FelhasznaloNyomtatasiNevComparableString == tanarNevToCompare) > 1)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportCommonResource.TanarExistsMoreTimesInDatabase, importItem.TanarNevImportData)));
|
||||
}
|
||||
else if (TanarCoList.Where(x => x.FelhasznaloNyomtatasiNevComparableString == tanarNevToCompare && (!importItem.TanarSzuletesiIdo.HasValue || x.FelhasznaloSzuletesiIdo == importItem.TanarSzuletesiIdo))?.ToList()?.Count() > 1)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ErrorResource.AzImportalasFajlAzonosNeveketEsSzuletesiDatumokatTartalmaz));
|
||||
}
|
||||
else
|
||||
{
|
||||
var tanarCo = TanarCoList.SingleOrDefault(x => x.FelhasznaloNyomtatasiNevComparableString == tanarNevToCompare && (!importItem.TanarSzuletesiIdo.HasValue || x.FelhasznaloSzuletesiIdo == importItem.TanarSzuletesiIdo));
|
||||
if (tanarCo != null)
|
||||
{
|
||||
if (tanarCo.SzerepkorTipusIdString.Equals(SzerepkorTipusEnum.alkalmazott.ToString()))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportCommonResource.TantargyfelosztasNemLehetsegesCsakAlkalmazottJogunak));
|
||||
}
|
||||
if (tanarCo.SzervezetId.HasValue && !isDualisElem)
|
||||
{
|
||||
isDualisElem = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var csoportNevToCompare = importItem.CsoportNev?.ToComparableString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(csoportNevToCompare) && baseTantargyfelosztasImportItemList.Any(x => x.OsztalyNev?.ToComparableString() == csoportNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportTantargyfelosztasResource.AMegadottCsoportSzerepelOsztalykentADokumentumban));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(csoportNevToCompare) && OsztalyCoList.Any(x => x.NevComparableString == csoportNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportTantargyfelosztasResource.AMegadottCsoportSzerepelOsztalykentAzAdatbazisban));
|
||||
}
|
||||
|
||||
var osztalyNevToCompare = importItem.OsztalyNev?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(osztalyNevToCompare) && baseTantargyfelosztasImportItemList.Any(x => x.CsoportNev?.ToComparableString() == osztalyNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportTantargyfelosztasResource.AMegadottOsztalySzerepelCsoportkentADokumentumban));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(osztalyNevToCompare) && CsoportCoList.Any(x => x.NevComparableString == osztalyNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportTantargyfelosztasResource.AMegadottOsztalySzerepelCsoportkentAzAdatbazisban));
|
||||
}
|
||||
|
||||
if (!isDualisElem && !string.IsNullOrWhiteSpace(csoportNevToCompare))
|
||||
{
|
||||
var csoportCo = CsoportCoList.SingleOrDefault(x => x.NevComparableString == csoportNevToCompare);
|
||||
if (csoportCo != null && csoportCo.SzervezetId.HasValue)
|
||||
{
|
||||
isDualisElem = true;
|
||||
}
|
||||
}
|
||||
|
||||
var tantargyNevToCompare = importItem.TantargyNev?.ToComparableString();
|
||||
if (!isDualisElem && !string.IsNullOrWhiteSpace(tantargyNevToCompare) && tantargyNevToCompare.Equals(TantargyResource.DualisKepzes.ToComparableString()))
|
||||
{
|
||||
isDualisElem = true;
|
||||
}
|
||||
|
||||
if (isDualisElem)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportCommonResource.DualisKepzeshezKapcsolodoElemekImportalasaNemLehetseges));
|
||||
}
|
||||
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class BaseTantargyfelosztasImportItemCo : BaseImportItemCo
|
||||
{
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameOsztaly), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string OsztalyNevImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameCsoport), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string CsoportNevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameTantargy), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string TantargyNevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameTanar), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string TanarNevImportData { get; set; }
|
||||
|
||||
public string OsztalyNev => GetStringValue(OsztalyNevImportData);
|
||||
|
||||
public string CsoportNev => GetStringValue(CsoportNevImportData);
|
||||
|
||||
public bool IsCsoport => !string.IsNullOrWhiteSpace(CsoportNev);
|
||||
|
||||
public string OsztalyCsoportNev => IsCsoport ? CsoportNev : OsztalyNev;
|
||||
|
||||
public string TantargyNev => GetStringValue(TantargyNevImportData);
|
||||
|
||||
public DateTime? TanarSzuletesiIdo => GetSzuletesIdoFromNev(TanarNevImportData);
|
||||
|
||||
public string TanarSzuletesiIdoString => GetDateTimeString(TanarSzuletesiIdo);
|
||||
|
||||
public string TanarNev => GetNev(TanarNevImportData, TanarSzuletesiIdo);
|
||||
|
||||
public int? TanarId { get; set; }
|
||||
|
||||
public string TantargyfelosztasNev => $"{TantargyNev} - {OsztalyCsoportNev} - {TanarNev}";
|
||||
|
||||
public int? CsoportTipusId { get; set; }
|
||||
|
||||
public bool IsOsszefuggoSzakmaiGyakorlat => CsoportTipusId == (int)CsoportTipusEnum.OsszefuggoSzakmaiGyakorlatiCsoport;
|
||||
|
||||
public int OperationTantargy { get; set; }
|
||||
|
||||
public string CompareHashTantargy { get; set; }
|
||||
|
||||
public int OperationOsztaly { get; set; }
|
||||
|
||||
public string CompareHashOsztaly { get; set; }
|
||||
|
||||
public int OperationCsoport { get; set; }
|
||||
|
||||
public string CompareHashCsoport { get; set; }
|
||||
}
|
||||
|
||||
public class TantargyImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TantargyImportJsonItemCo(BaseTantargyfelosztasImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Nev = importItemCo.TantargyNev;
|
||||
RovidNev = Nev.Length > 20 ? Nev.Substring(0, 20) : Nev;
|
||||
NevNyomtatvanyban = Nev;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationTantargy;
|
||||
}
|
||||
|
||||
public TantargyImportJsonItemCo(OratervImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Nev = importItemCo.TantargyNeve;
|
||||
RovidNev = Nev.Length > 20 ? Nev.Substring(0, 20) : Nev;
|
||||
NevNyomtatvanyban = Nev;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationTantargy;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_ROVIDNEV")]
|
||||
public string RovidNev { get; set; }
|
||||
|
||||
[JsonProperty("C_NEVNYOMTATVANYBAN")]
|
||||
public string NevNyomtatvanyban { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_GYAKORLATI")]
|
||||
public string IsGyakorlati => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TARGYKATEGORIA")]
|
||||
public int Tantargykategoria => (int)TargyKategoriaTipusEnum.na;
|
||||
|
||||
[JsonProperty("C_ALTANTARGYKENTNYOMTATVANYBAN")]
|
||||
public string IsAltantargykentNyomtatvanyban => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANORANKIVULI")]
|
||||
public string IsTanoranKivuli => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_FOTARGYE")]
|
||||
public string IsFotargy => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_FOTARGYID")]
|
||||
public int? FotargyId => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class OsztalyCsoportImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public OsztalyCsoportImportJsonItemCo(BaseTantargyfelosztasImportItemCo importItemCo, int operationOsztalyCsoport, string osztalyCsoportNev, int feladatellatasiHelyId, int feladatKategoriaId, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Nev = osztalyCsoportNev;
|
||||
FeladatellatasiHelyId = feladatellatasiHelyId;
|
||||
FeladatKategoriaId = feladatKategoriaId;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = operationOsztalyCsoport;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_FELADATELLATASIHELYID")]
|
||||
public int FeladatellatasiHelyId { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ISTECHNIKAI")]
|
||||
public string IsTechnikaiOsztaly => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_VEGZOSEVFOLYAM")]
|
||||
public string IsVegzosEvfolyam => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_EVFOLYAMTIPUSA")]
|
||||
public int EvfolyamTipus => (int)EvfolyamTipusEnum.na;
|
||||
|
||||
[JsonProperty("C_KERESZTFELEVES")]
|
||||
public string IsKeresztfeleves => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_FELADATKATEGORIAID")]
|
||||
public int FeladatKategoriaId { get; set; }
|
||||
|
||||
[JsonProperty("C_MEGJEGYZES")]
|
||||
public string Megjegyzes => null;
|
||||
|
||||
[JsonProperty("C_TERVEZETTLETSZAM")]
|
||||
public int? TervezettLetszam => null;
|
||||
|
||||
[JsonProperty("C_TEREMID")]
|
||||
public int? TeremId => null;
|
||||
|
||||
[JsonProperty("C_KEPZESIFORMA")]
|
||||
public int KepzesiForma => (int)TanterviJellegEnum.nappali_rendszeru_iskolai_oktatas;
|
||||
|
||||
[JsonProperty("C_ISGYOGYPEDAGOGIAILOGOPEDIAI")]
|
||||
public string IsGyogypedagogiaiLogopediai => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class OsztalyImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public OsztalyImportJsonItemCo(BaseTantargyfelosztasImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
OsztalyCsoportNev = importItemCo.OsztalyNev;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationOsztaly;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("OsztalyCsoportNev")]
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_KETTANNYELVU")]
|
||||
public string IsKettannyelvu => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_NEMZETISEGI")]
|
||||
public string IsNemzetisegi => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_NYELVIELOKESZITO")]
|
||||
public string IsNyelvielokeszito => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SPORT")]
|
||||
public string IsSport => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_OSZTALYNAPLOLEIRASA")]
|
||||
public string OsztalynaploLeirasa => null;
|
||||
|
||||
[JsonProperty("C_OSZTALYNAPLOMEGNYITASA")]
|
||||
public string OsztalynaploMegnyitasaDate => null;
|
||||
|
||||
[JsonProperty("C_OSZTALYNAPLOZARASA")]
|
||||
public string OsztalynaploZarasaDate => null;
|
||||
|
||||
[JsonProperty("C_OSZTALYFONOKID")]
|
||||
public int? OsztalyfonokId => null;
|
||||
|
||||
[JsonProperty("C_OFOHELYETTESID")]
|
||||
public int? OsztalyfonokHelyettesId => null;
|
||||
|
||||
[JsonProperty("C_TANTERVID")]
|
||||
public int? TantervId => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class CsoportImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public CsoportImportJsonItemCo(BaseTantargyfelosztasImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
OsztalyCsoportNev = importItemCo.CsoportNev;
|
||||
OsztalybontasNev = importItemCo.OsztalyNev;
|
||||
//NOTE: Az CsoportTipusId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van csoprt típusa!
|
||||
Tipus = importItemCo.CsoportTipusId.Value;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationCsoport;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("OsztalyCsoportNev")]
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
[JsonProperty("OsztalybontasNev")]
|
||||
public string OsztalybontasNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TIPUSA")]
|
||||
public int Tipus { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_CSOPORTNAPLOLEIRAS")]
|
||||
public string CsoportnaploLeiras => null;
|
||||
|
||||
[JsonProperty("C_CSOPORTNAPLOMEGNYITASA")]
|
||||
public string CsoportnaploMegnyitasaDate => null;
|
||||
|
||||
[JsonProperty("C_CSOPORTNAPLOZARASA")]
|
||||
public string CsoportnaploZarasaDate => null;
|
||||
|
||||
[JsonProperty("C_CSOPORTVEZETOID")]
|
||||
public int? CsoportvezetoId => null;
|
||||
|
||||
[JsonProperty("C_OSZTALYBONTASID")]
|
||||
public int? OsztalybontasId => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
289
Kreta.BusinessLogic/HelperClasses/ImportCo/EszkozImportCo.cs
Normal file
289
Kreta.BusinessLogic/HelperClasses/ImportCo/EszkozImportCo.cs
Normal file
|
@ -0,0 +1,289 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class EszkozImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<EszkozImportItemCo> MainImportItemList { get; set; } = new List<EszkozImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<EszkozImportItemCo> NemImportalhatoItemList { get; set; } = new List<EszkozImportItemCo>();
|
||||
|
||||
[JsonProperty("T_ESZKOZ_OSSZES")]
|
||||
public List<EszkozImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<EszkozItemCo> EszkozCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<AlkalmazottItemCo> FelelosCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TeremItemCo> TeremCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (EszkozImportItemCo 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);
|
||||
}
|
||||
|
||||
var teremNevToCompare = importItem.TeremNev?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(teremNevToCompare))
|
||||
{
|
||||
if (TeremCoList.All(x => x.NevComparableString != teremNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportEszkozResource.TeremIsNotInDatabase, importItem.TeremNev)));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Levalidáljuk, hogy a felelős szerepel-e az adatbázisban, ha nem üres string(illetve, ha több ugyanolyan nevű felelős szerepel, akkor megnézzük születési idő alapján is).
|
||||
// Azért nem BlValidator-ban, mert így csak egyszer kell lekérni a tanárlistát!
|
||||
var felelosNevToCompare = importItem.FelelosNev?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(felelosNevToCompare))
|
||||
{
|
||||
if (!importItem.FelelosSzuletesiIdo.HasValue && FelelosCoList.All(x => x.FelhasznaloNyomtatasiNevComparableString != felelosNevToCompare) ||
|
||||
importItem.FelelosSzuletesiIdo.HasValue && !FelelosCoList.Any(x => x.FelhasznaloNyomtatasiNevComparableString == felelosNevToCompare && x.FelhasznaloSzuletesiIdo == importItem.FelelosSzuletesiIdo))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportCommonResource.TanarIsNotInDatabase, importItem.EszkozSzemelyiFeleloseImportData)));
|
||||
}
|
||||
|
||||
if (!importItem.FelelosSzuletesiIdo.HasValue && FelelosCoList.Count(x => x.FelhasznaloNyomtatasiNevComparableString == felelosNevToCompare) > 1)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportCommonResource.TanarExistsMoreTimesInDatabase, importItem.EszkozSzemelyiFeleloseImportData)));
|
||||
}
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportEszkozResource.ImportHeaderNameEszkozNeve
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class EszkozImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private EszkozImportItemCo() { }
|
||||
|
||||
public EszkozImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Technikai paraméter(ek) a reflection-ös exporthoz.
|
||||
/// </summary>
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportEszkozResource.ImportHeaderNameEszkozNeve), typeof(ImportExportEszkozResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportEszkozResource.ImportHeaderNameEszkozNeve), ResourceType = typeof(ImportExportEszkozResource))]
|
||||
public string EszkozNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportEszkozResource.ImportHeaderNameHelyiseg), typeof(ImportExportEszkozResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportEszkozResource.ImportHeaderNameHelyiseg), ResourceType = typeof(ImportExportEszkozResource))]
|
||||
public string HelyisegImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportEszkozResource.ImportHeaderNameEszkozTipus), typeof(ImportExportEszkozResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportEszkozResource.ImportHeaderNameEszkozTipus), ResourceType = typeof(ImportExportEszkozResource))]
|
||||
public string EszkozTipusImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportEszkozResource.ImportHeaderNameMennyiseg), typeof(ImportExportEszkozResource))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportEszkozResource.ImportHeaderNameMennyiseg), ResourceType = typeof(ImportExportEszkozResource))]
|
||||
public string DarabszamImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportEszkozResource.ImportHeaderNameEszkozSzemelyiFelelose), typeof(ImportExportEszkozResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportEszkozResource.ImportHeaderNameEszkozSzemelyiFelelose), ResourceType = typeof(ImportExportEszkozResource))]
|
||||
public string EszkozSzemelyiFeleloseImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 05, nameof(ImportExportEszkozResource.ImportHeaderNameLeltariSzam), typeof(ImportExportEszkozResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportEszkozResource.ImportHeaderNameLeltariSzam), ResourceType = typeof(ImportExportEszkozResource))]
|
||||
public string LeltariSzamImportData { get; set; }
|
||||
|
||||
public string Nev => GetStringValue(EszkozNeveImportData);
|
||||
|
||||
public string TeremNev => GetStringValue(HelyisegImportData);
|
||||
|
||||
public int TipusId => ((int)GeneratedAdatszotarTipusEnum.EszkozTipus).GetItemIdByTypeAndName(EszkozTipusImportData, _tanevId) ?? (int)EszkozTipusEnum.na;
|
||||
|
||||
public int? Darabszam => GetIntValue(DarabszamImportData, 0);
|
||||
|
||||
public DateTime? FelelosSzuletesiIdo => GetSzuletesIdoFromNev(EszkozSzemelyiFeleloseImportData);
|
||||
|
||||
public string FelelosNev => GetNev(EszkozSzemelyiFeleloseImportData, FelelosSzuletesiIdo);
|
||||
|
||||
public string LeltariSzam => GetStringValue(LeltariSzamImportData);
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(DarabszamImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!Darabszam.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportEszkozResource.ImportHeaderNameMennyiseg.ToLowerInvariant(), DarabszamImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Darabszam < 0 || Darabszam > 99999)
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.ADarabszamCsakEgy0Es99999KozottiEgeszSzamLehet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class EszkozImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public EszkozImportJsonItemCo(EszkozImportItemCo importItemCo, List<TeremItemCo> teremCoList, List<AlkalmazottItemCo> felelosCoList, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Nev = importItemCo.Nev;
|
||||
TeremNev = importItemCo.TeremNev;
|
||||
TeremId = teremCoList.Single(x => x.NevComparableString == importItemCo.TeremNev?.ToComparableString()).Id;
|
||||
TipusId = importItemCo.TipusId;
|
||||
//NOTE: Az Darabszam.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van darabszáma!
|
||||
Darabszam = importItemCo.Darabszam.Value;
|
||||
LeltariSzam = importItemCo.LeltariSzam;
|
||||
if (!string.IsNullOrWhiteSpace(importItemCo.FelelosNev))
|
||||
{
|
||||
if (importItemCo.FelelosSzuletesiIdo.HasValue)
|
||||
{
|
||||
FelelosNev = $"{importItemCo.FelelosNev} ({importItemCo.FelelosSzuletesiIdo.Value.ToString(Constants.ToStringPattern.HungarianDate)})";
|
||||
FelelosId = felelosCoList.Single(x => x.FelhasznaloNyomtatasiNevComparableString == importItemCo.FelelosNev?.ToComparableString() && x.FelhasznaloSzuletesiIdo == importItemCo.FelelosSzuletesiIdo).Id;
|
||||
}
|
||||
else
|
||||
{
|
||||
FelelosNev = importItemCo.FelelosNev;
|
||||
FelelosId = felelosCoList.Single(x => x.FelhasznaloNyomtatasiNevComparableString == importItemCo.FelelosNev?.ToComparableString()).Id;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FelelosNev = null;
|
||||
FelelosId = null;
|
||||
}
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TeremNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TEREMID")]
|
||||
public int TeremId { get; set; }
|
||||
|
||||
[JsonProperty("C_TIPUS")]
|
||||
public int TipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_DARABSZAM")]
|
||||
public int Darabszam { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelelosNev { get; set; }
|
||||
|
||||
[JsonProperty("C_FELELOSID")]
|
||||
public int? FelelosId { get; set; }
|
||||
|
||||
[JsonProperty("C_LELTARISZAM")]
|
||||
public string LeltariSzam { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_BERELT")]
|
||||
public string IsBerelt => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_HALOZATIKAPCSOLAT")]
|
||||
public string IsHalozatiKapcsolat => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_HORDOZHATO")]
|
||||
public string IsHordozhato => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_INTERNETKAPCSOLAT")]
|
||||
public string IsInternetKapcsolat => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_MULTIMEDIAS")]
|
||||
public string IsMultimedias => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_PEDAGOGUSHOZZAFERHET")]
|
||||
public string IsPedagogusHozzaferhet => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANULOHOZZAFERHET")]
|
||||
public string IsTanuloHozzaferhet => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TARTOZEK")]
|
||||
public string IsTartozek => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_NEMMUKODIK")]
|
||||
public string IsNemMukodik => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_KATEGORIA")]
|
||||
public int KategoriaId => (int)EszkozKategoriaEnum.na;
|
||||
|
||||
[JsonProperty("C_CELJA")]
|
||||
public int CeljaId => (int)EszkozCelEnum.na;
|
||||
|
||||
[JsonProperty("C_JELLEGE")]
|
||||
public int JellegeId => (int)EszkozJellegEnum.egyedi;
|
||||
|
||||
[JsonProperty("C_MENNYISEGIEGYSEG")]
|
||||
public int MennyisegiEgysegId => (int)MertekegysegTipusEnum.darab;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,575 @@
|
|||
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
|
||||
}
|
||||
}
|
675
Kreta.BusinessLogic/HelperClasses/ImportCo/GondviseloImportCo.cs
Normal file
675
Kreta.BusinessLogic/HelperClasses/ImportCo/GondviseloImportCo.cs
Normal file
|
@ -0,0 +1,675 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class GondviseloImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<GondviseloImportItemCo> MainImportItemList { get; set; } = new List<GondviseloImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<GondviseloImportItemCo> NemImportalhatoItemList { get; set; } = new List<GondviseloImportItemCo>();
|
||||
|
||||
[JsonProperty("T_TELEFON_OSSZES")]
|
||||
public List<TelefonGondviseloImportJsonItemCo> TelefonGondviseloImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_EMAIL_OSSZES")]
|
||||
public List<EmailGondviseloImportJsonItemCo> EmailGondviseloImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_CIM_OSSZES")]
|
||||
public List<CimGondviseloImportJsonItemCo> CimGondviseloImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_GONDVISELO_OSSZES")]
|
||||
public List<GondviseloImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<GondviseloItemCo> GondviseloCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsGeneraltFileLetoltes { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsEmailKuldes { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (GondviseloImportItemCo 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 (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportGondviseloResource.ImportHeaderNameTanuloNeve,
|
||||
ImportExportGondviseloResource.ImportHeaderNameTanuloOktatasiAzonosito,
|
||||
ImportExportGondviseloResource.ImportHeaderNameGondviseloNeve,
|
||||
ImportExportGondviseloResource.ImportHeaderNameGondviseloRokonsagiFoka
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class GondviseloImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private GondviseloImportItemCo() { }
|
||||
|
||||
public GondviseloImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportGondviseloResource.ImportHeaderNameTanuloNeve), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(200, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameTanuloNeve), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string TanuloNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportGondviseloResource.ImportHeaderNameTanuloOktatasiAzonosito), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(11, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[KretaRegularExpression(Constants.RegularExpressions.OktatasiAzonositoTanulo, ErrorMessageResourceName = nameof(ErrorResource.OktatasiAzonositoFormatumaNemMegfeleloTanulo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameTanuloOktatasiAzonosito), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string TanuloOktatasiAzonositoImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloNevElotag), typeof(ImportExportGondviseloResource))]
|
||||
[MaxLength(200, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloNevElotag), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string GondviseloNevElotagImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloVezetekNev), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(200, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloVezetekNev), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string GondviseloVezeteknevImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloKeresztNev), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(200, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloKeresztNev), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string GondviseloKeresztnevImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 05, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloRokonsagiFoka), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloRokonsagiFoka), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string GondviseloRokonsagiFokaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 06, nameof(ImportExportGondviseloResource.ImportHeaderNameTorvenyesKepviselo), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameTorvenyesKepviselo), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string TorvenyesKepviseloImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 07, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloTelefonszama), typeof(ImportExportGondviseloResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[PhoneExtended(ErrorMessageResourceName = nameof(ErrorResource.ATelefonszamFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloTelefonszama), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string GondviseloTelefonszamaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 08, nameof(ImportExportGondviseloResource.ImportHeaderNameTelefonTipus), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameTelefonTipus), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string TelefonTipusImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 09, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloEmailCime), typeof(ImportExportGondviseloResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[EmailAddressExtended(true, true, ErrorMessageResourceName = nameof(ErrorResource.NemMegfeleloFormatumuAzEmailCim), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloEmailCime), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string GondviseloEmailCimeImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 10, nameof(ImportExportGondviseloResource.ImportHeaderNameEmailTipus), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameEmailTipus), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string EmailTipusImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 11, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimTipusa), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimTipusa), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimTipusaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 12, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimOrszag), typeof(ImportExportGondviseloResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimOrszag), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimOrszagImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 13, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimIranyitoszam), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimIranyitoszam), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimIranyitoszamImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 14, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimHelysegNev), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimHelysegNev), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimHelysegNevImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 15, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimKozteruletNev), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimKozteruletNev), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimKozteruletNevImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 16, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimKozteruletJelleg), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimKozteruletJelleg), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimKozteruletJellegeImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 17, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimHazszam), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimHazszam), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimHazszamImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 18, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimEmelet), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimEmelet), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimEmeletImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 19, nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimAjto), typeof(ImportExportGondviseloResource))]
|
||||
[Display(Name = nameof(ImportExportGondviseloResource.ImportHeaderNameGondviseloCimAjto), ResourceType = typeof(ImportExportGondviseloResource))]
|
||||
public string CimAjtoImportData { get; set; }
|
||||
|
||||
public string FelhasznaloElotag => GetElotagFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string FelhasznaloVezeteknev => GetVezeteknevFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string FelhasznaloKeresztnev => GetKeresztnevekFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string FelhasznaloOktatasiAzonosito => GetStringValue(TanuloOktatasiAzonositoImportData);
|
||||
|
||||
public string GondviseloNevElotag => GetStringValue(GondviseloNevElotagImportData);
|
||||
|
||||
public string GondviseloVezeteknev => GetStringValue(GondviseloVezeteknevImportData);
|
||||
|
||||
public string GondviseloKeresztnev => GetStringValue(GondviseloKeresztnevImportData);
|
||||
|
||||
public int? RokonsagiFokId => string.IsNullOrWhiteSpace(GondviseloRokonsagiFokaImportData) ? (int)RokonsagiFokEnum.na : ((int)GeneratedAdatszotarTipusEnum.RokonsagiFok).GetItemIdByTypeAndName(GondviseloRokonsagiFokaImportData, _tanevId);
|
||||
|
||||
public string RokonsagiFokNev => RokonsagiFokId?.GetDisplayName<RokonsagiFokEnum>(_tanevId);
|
||||
|
||||
public bool? IsTorvenyesKepviselo => GetBooleanValue(TorvenyesKepviseloImportData);
|
||||
|
||||
public string Telefonszam => GetStringValue(GondviseloTelefonszamaImportData);
|
||||
|
||||
public int? TelefonTipus => string.IsNullOrWhiteSpace(TelefonTipusImportData) ? (int)TelefonTipusEnum.Ismeretlen : ((int)GeneratedAdatszotarTipusEnum.TelefonTipus).GetItemIdByTypeAndName(TelefonTipusImportData, _tanevId);
|
||||
|
||||
public string EmailCim => GetStringValue(GondviseloEmailCimeImportData);
|
||||
|
||||
public int? EmailTipus => string.IsNullOrWhiteSpace(EmailTipusImportData) ? (int)EmailTipusEnum.Na : ((int)GeneratedAdatszotarTipusEnum.EmailTipus).GetItemIdByTypeAndName(EmailTipusImportData, _tanevId);
|
||||
|
||||
public int? CimTipusaId => ((int)GeneratedAdatszotarTipusEnum.CimTipus).GetItemIdByTypeAndName(CimTipusaImportData, _tanevId);
|
||||
|
||||
public string CimTipusaNev => CimTipusaId?.GetDisplayName<CimTipusEnum>(_tanevId);
|
||||
|
||||
public int? CimOrszagId => ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(CimOrszagImportData, _tanevId);
|
||||
|
||||
public string CimIranyitoszam => GetStringValue(CimIranyitoszamImportData);
|
||||
|
||||
public string CimHelysegNev => GetStringValue(CimHelysegNevImportData);
|
||||
|
||||
public string CimKozteruletNev => GetStringValue(CimKozteruletNevImportData);
|
||||
|
||||
public int? CimKozteruletJellegId => ((int)GeneratedAdatszotarTipusEnum.KozteruletJelleg).GetItemIdByTypeAndName(CimKozteruletJellegeImportData, _tanevId);
|
||||
|
||||
public string CimKozteruletJellegeNev => CimKozteruletJellegId?.GetDisplayName<KozteruletJellegEnum>(_tanevId) ?? CimKozteruletJellegeImportData;
|
||||
|
||||
public string CimHazszam => GetStringValue(CimHazszamImportData);
|
||||
|
||||
public string CimEmelet => GetStringValue(CimEmeletImportData);
|
||||
|
||||
public string CimAjto => GetStringValue(CimAjtoImportData);
|
||||
|
||||
public int? FelhasznaloId { get; set; }
|
||||
|
||||
public int? TelefonId { get; set; }
|
||||
|
||||
public int? EmailId { get; set; }
|
||||
|
||||
public int? CimId { get; set; }
|
||||
|
||||
public int OperationTelefon { get; set; }
|
||||
|
||||
public int OperationEmail { get; set; }
|
||||
|
||||
public int OperationCim { get; set; }
|
||||
|
||||
public string CompareHashTelefon { get; set; }
|
||||
|
||||
public string CompareHashEmail { get; set; }
|
||||
|
||||
public string CompareHashCim { get; set; }
|
||||
|
||||
public GondviseloItemCo Gondviselo { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//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(TanuloNeveImportData) &&
|
||||
!string.IsNullOrWhiteSpace(TanuloOktatasiAzonositoImportData))
|
||||
{
|
||||
if (!FelhasznaloId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaEzzelAzOktatasiAzonositovalNemLetezikTanuloEbbenATanevben);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy legyen vezetéknév és keresztnév is
|
||||
if (!string.IsNullOrWhiteSpace(TanuloNeveImportData) && (string.IsNullOrWhiteSpace(FelhasznaloVezeteknev) || string.IsNullOrWhiteSpace(FelhasznaloKeresztnev)))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.ATanuloNeveFormatumaNemMegfelelo);
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy legyen vezetéknév és keresztnév is
|
||||
if (string.IsNullOrWhiteSpace(GondviseloVezeteknevImportData) || string.IsNullOrWhiteSpace(GondviseloKeresztnevImportData))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.AGondviseloNeveFormatumaNemMegfelelo);
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(GondviseloRokonsagiFokaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!RokonsagiFokId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaNincsIlyenRokonsagiFok);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(CimTipusaImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!CimTipusaId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaNincsIlyenCimTipus);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CimTipusaId.Value != (int)CimTipusEnum.allando_lakcim)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaCsakAllandoLakcimTipusImportalhato);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(EmailTipusImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!EmailTipus.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaNincsIlyenEmailTipus);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(TelefonTipusImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!TelefonTipus.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaNincsIlyenTelefonTipus);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(CimOrszagImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!CimOrszagId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.HibaNemMegfeleloOrszagnev);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TelefonGondviseloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
public TelefonGondviseloImportJsonItemCo(GondviseloImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
Id = importItemCo.TelefonId;
|
||||
//NOTE: Az FelhasznaloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanuló id-ja!
|
||||
FelhasznaloId = importItemCo.FelhasznaloId.Value;
|
||||
FelhasznaloElotag = Extensions.NameExtensions.CleanElotag(importItemCo.FelhasznaloElotag);
|
||||
FelhasznaloVezeteknev = importItemCo.FelhasznaloVezeteknev.ReplaceMultipleSpacesAndTrim();
|
||||
FelhasznaloKeresztnev = importItemCo.FelhasznaloKeresztnev.ReplaceMultipleSpacesAndTrim();
|
||||
Nev = Extensions.NameExtensions.GetNevSorrendben("F", Extensions.NameExtensions.CleanElotag(importItemCo.GondviseloNevElotag), importItemCo.GondviseloVezeteknev, importItemCo.GondviseloKeresztnev);
|
||||
//NOTE: Az RokonsagiFokId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van rokonsági foka!
|
||||
RokonsagiFokId = importItemCo.RokonsagiFokId.Value;
|
||||
RokonsagiFokNev = importItemCo.RokonsagiFokNev;
|
||||
|
||||
Telefonszam = importItemCo.Telefonszam;
|
||||
TipusId = importItemCo.TelefonTipus;
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(true);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationTelefon;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("Nev")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("RokonsagiFokId")]
|
||||
public int? RokonsagiFokId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string RokonsagiFokNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TELEFONSZAM")]
|
||||
public string Telefonszam { get; set; }
|
||||
|
||||
[JsonProperty("C_FELHASZNALOID")]
|
||||
public int FelhasznaloId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloElotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloVezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_TELEFONTIPUSA")]
|
||||
public int? TipusId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TipusNev => TipusId?.GetDisplayName<TelefonTipusEnum>(_tanevId);
|
||||
|
||||
[JsonProperty("C_LEIRAS")]
|
||||
public string Leiras => null;
|
||||
|
||||
[JsonProperty("C_ISPUBLIC")]
|
||||
public string IsPublic => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class EmailGondviseloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public EmailGondviseloImportJsonItemCo(GondviseloImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.EmailId;
|
||||
//NOTE: Az FelhasznaloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanuló id-ja!
|
||||
FelhasznaloId = importItemCo.FelhasznaloId.Value;
|
||||
FelhasznaloElotag = Extensions.NameExtensions.CleanElotag(importItemCo.FelhasznaloElotag);
|
||||
FelhasznaloVezeteknev = importItemCo.FelhasznaloVezeteknev.ReplaceMultipleSpacesAndTrim();
|
||||
FelhasznaloKeresztnev = importItemCo.FelhasznaloKeresztnev.ReplaceMultipleSpacesAndTrim();
|
||||
Nev = Extensions.NameExtensions.GetNevSorrendben("F", Extensions.NameExtensions.CleanElotag(importItemCo.GondviseloNevElotag), importItemCo.GondviseloVezeteknev, importItemCo.GondviseloKeresztnev);
|
||||
//NOTE: Az RokonsagiFokId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van rokonsági foka!
|
||||
RokonsagiFokId = importItemCo.RokonsagiFokId.Value;
|
||||
RokonsagiFokNev = importItemCo.RokonsagiFokNev;
|
||||
|
||||
EmailCim = importItemCo.EmailCim;
|
||||
TipusId = importItemCo.EmailTipus;
|
||||
TipusNev = TipusId?.GetDisplayName<EmailTipusEnum>(tanevId);
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(true);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationEmail;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloElotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloVezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("Nev")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("RokonsagiFokId")]
|
||||
public int? RokonsagiFokId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string RokonsagiFokNev { get; set; }
|
||||
|
||||
[JsonProperty("C_FELHASZNALOID")]
|
||||
public int FelhasznaloId { get; set; }
|
||||
|
||||
[JsonProperty("C_EMAILCIM")]
|
||||
public string EmailCim { get; set; }
|
||||
|
||||
[JsonProperty("C_EMAILTIPUSA")]
|
||||
public int? TipusId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ISPUBLIC")]
|
||||
public string IsPublic => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISHIBASANMEGADVA")]
|
||||
public string IsHibasanMegadva => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class CimGondviseloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public CimGondviseloImportJsonItemCo(GondviseloImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.CimId;
|
||||
//NOTE: Az FelhasznaloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanuló id-ja!
|
||||
FelhasznaloId = importItemCo.FelhasznaloId.Value;
|
||||
FelhasznaloElotag = Extensions.NameExtensions.CleanElotag(importItemCo.FelhasznaloElotag);
|
||||
FelhasznaloVezeteknev = importItemCo.FelhasznaloVezeteknev.ReplaceMultipleSpacesAndTrim();
|
||||
FelhasznaloKeresztnev = importItemCo.FelhasznaloKeresztnev.ReplaceMultipleSpacesAndTrim();
|
||||
Nev = Extensions.NameExtensions.GetNevSorrendben("F", Extensions.NameExtensions.CleanElotag(importItemCo.GondviseloNevElotag), importItemCo.GondviseloVezeteknev, importItemCo.GondviseloKeresztnev);
|
||||
//NOTE: Az RokonsagiFokId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van rokonsági foka!
|
||||
RokonsagiFokId = importItemCo.RokonsagiFokId.Value;
|
||||
RokonsagiFokNev = importItemCo.RokonsagiFokNev;
|
||||
|
||||
TipusId = importItemCo.CimTipusaId;
|
||||
TipusNev = TipusId?.GetDisplayName<CimTipusEnum>(tanevId);
|
||||
OrszagId = importItemCo.CimOrszagId;
|
||||
Iranyitoszam = importItemCo.CimIranyitoszam;
|
||||
Helyseg = importItemCo.CimHelysegNev;
|
||||
Kozterulet = importItemCo.CimKozteruletNev;
|
||||
KozterulegJellegeNev = importItemCo.CimKozteruletJellegeNev;
|
||||
Hazszam = importItemCo.CimHazszam;
|
||||
Emelet = importItemCo.CimEmelet;
|
||||
Ajto = importItemCo.CimAjto;
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(importItemCo.Gondviselo?.AllandoLakcim?.IsAlapertelmezett ?? true);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationCim;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloElotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloVezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("Nev")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("RokonsagiFokId")]
|
||||
public int? RokonsagiFokId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string RokonsagiFokNev { get; set; }
|
||||
|
||||
[JsonProperty("C_FELHASZNALOID")]
|
||||
public int FelhasznaloId { get; set; }
|
||||
|
||||
[JsonProperty("C_CIMTIPUSA")]
|
||||
public int? TipusId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ORSZAG")]
|
||||
public int? OrszagId { get; set; }
|
||||
|
||||
[JsonProperty("C_IRANYITOSZAM")]
|
||||
public string Iranyitoszam { get; set; }
|
||||
|
||||
[JsonProperty("C_VAROS")]
|
||||
public string Helyseg { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULET")]
|
||||
public string Kozterulet { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULETJELLEGENEV")]
|
||||
public string KozterulegJellegeNev { get; set; }
|
||||
|
||||
[JsonProperty("C_HAZSZAM")]
|
||||
public string Hazszam { get; set; }
|
||||
|
||||
[JsonProperty("C_EMELET")]
|
||||
public string Emelet { get; set; }
|
||||
|
||||
[JsonProperty("C_AJTO")]
|
||||
public string Ajto { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class GondviseloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public GondviseloImportJsonItemCo(GondviseloImportItemCo importItemCo, bool isSzirIntezmeny, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.Id;
|
||||
//NOTE: Az FelhasznaloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanuló id-ja!
|
||||
FelhasznaloId = importItemCo.FelhasznaloId.Value;
|
||||
FelhasznaloElotag = Extensions.NameExtensions.CleanElotag(importItemCo.FelhasznaloElotag);
|
||||
FelhasznaloVezeteknev = importItemCo.FelhasznaloVezeteknev.ReplaceMultipleSpacesAndTrim();
|
||||
FelhasznaloKeresztnev = importItemCo.FelhasznaloKeresztnev.ReplaceMultipleSpacesAndTrim();
|
||||
FelhasznaloOktatasiAzonosito = importItemCo.FelhasznaloOktatasiAzonosito;
|
||||
Elotag = Extensions.NameExtensions.CleanElotag(importItemCo.GondviseloNevElotag);
|
||||
Vezeteknev = importItemCo.GondviseloVezeteknev.ReplaceMultipleSpacesAndTrim();
|
||||
Keresztnev = importItemCo.GondviseloKeresztnev.ReplaceMultipleSpacesAndTrim();
|
||||
Nev = Extensions.NameExtensions.GetNevSorrendben("F", Elotag, Vezeteknev, Keresztnev);
|
||||
//NOTE: Az RokonsagiFokId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van rokonsági foka!
|
||||
RokonsagiFokId = importItemCo.RokonsagiFokId.Value;
|
||||
RokonsagiFokNev = importItemCo.RokonsagiFokNev;
|
||||
IsTorvenyesKepviselo = SDAConvert.ToSDABoolean(importItemCo.IsTorvenyesKepviselo ?? false);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
IsEmailErtesites = SDAConvert.ToSDABoolean(!isSzirIntezmeny);
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloElotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloVezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloKeresztnev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string Elotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string Vezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string Keresztnev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string FelhasznaloOktatasiAzonosito { get; set; }
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_ROKONSAGFOKA")]
|
||||
public int RokonsagiFokId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string RokonsagiFokNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TANULOID")]
|
||||
public int FelhasznaloId { get; set; }
|
||||
|
||||
[JsonProperty("C_ISTORVENYESKEPVISELO")]
|
||||
public string IsTorvenyesKepviselo { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_AKTIV")]
|
||||
public string IsAktiv => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_GONDVISELESKEZDETE")]
|
||||
public DateTime? GondviselesKezdete => null;
|
||||
|
||||
[JsonProperty("C_GONDVISELESVEGE")]
|
||||
public DateTime? GondviselesVege => null;
|
||||
|
||||
[JsonProperty("C_GYERMEKETEGYEDULNEVELO")]
|
||||
public string IsGyermeketEgyedulNevelo => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_NYUGDIJAS")]
|
||||
public string IsNyugdijas => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISEMAILERTESITES")]
|
||||
public string IsEmailErtesites { get; set; }
|
||||
|
||||
[JsonProperty("C_EGYEDIAZONOSITO")]
|
||||
public string EgyediAzonosito => Guid.Empty.ToString();
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class ImportItemCompareCo
|
||||
{
|
||||
public int? Id { get; set; }
|
||||
|
||||
public string CompareHash { get; set; }
|
||||
|
||||
public bool Importalt { get; set; }
|
||||
}
|
||||
}
|
581
Kreta.BusinessLogic/HelperClasses/ImportCo/NebuloImportCo.cs
Normal file
581
Kreta.BusinessLogic/HelperClasses/ImportCo/NebuloImportCo.cs
Normal file
|
@ -0,0 +1,581 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class NebuloImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<NebuloImportItemCo> MainImportItemList { get; set; } = new List<NebuloImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<NebuloImportItemCo> NemImportalhatoItemList { get; set; } = new List<NebuloImportItemCo>();
|
||||
|
||||
[JsonProperty("T_NEBULO_OSSZES")]
|
||||
public List<NebuloImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int NebuloImportTipus { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<NebuloCo> NebuloCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (NebuloImportItemCo 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);
|
||||
}
|
||||
|
||||
var oktatasiAzonositoToCompare = importItem.OktatasiAzonositoSzama?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(oktatasiAzonositoToCompare))
|
||||
{
|
||||
if (NebuloCoList.Any(x => x.OktatasiAzonositoSzama == oktatasiAzonositoToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportNebuloResource.ErrorNemMegfeleloOktAzon, importItem.OktatasiAzonositoSzama)));
|
||||
}
|
||||
}
|
||||
|
||||
if (MainImportItemList.Where(x => x.OktatasiAzonositoSzamImportData == oktatasiAzonositoToCompare).ToList().Count > 1)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportNebuloResource.ErrorDuplikaltOktAzon, importItem.OktatasiAzonositoSzama)));
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportNebuloResource.ImportHeaderNameSzuletesiVezeteknev,
|
||||
ImportExportNebuloResource.ImportHeaderNameSzuletesiKeresztnev,
|
||||
ImportExportNebuloResource.ImportHeaderNameAnyjaNeveVezeteknev,
|
||||
ImportExportNebuloResource.ImportHeaderNameAnyjaNeveKeresztnev,
|
||||
ImportExportNebuloResource.ImportHeaderNameSzuletesiIdo,
|
||||
ImportExportNebuloResource.ImportHeaderNameSzuletesiTelepules
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class NebuloImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private NebuloImportItemCo() { }
|
||||
|
||||
public NebuloImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[KretaRegularExpression(Constants.RegularExpressions.OktatasiAzonosito, ErrorMessageResourceName = nameof(ErrorResource.OktatasiAzonositoFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameOktatasiAzonositoSzam), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string OktatasiAzonositoSzamImportData { get; set; }
|
||||
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameViseltElonev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ViseltElonevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameViseltVezeteknev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ViseltVezeteknevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameViseltKeresztnev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ViseltKeresztnevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameSzuletesiVezeteknev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string SzuletesiVezeteknevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameSzuletesiKeresztnev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string SzuletesiKeresztnevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAnyjaNeveVezeteknev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AnyjaNeveVezeteknevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAnyjaNeveKeresztnev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AnyjaNeveKeresztnevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameSzuletesiIdo), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string SzuletesiIdoImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(50, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameSzuletesiTelepules), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string SzuletesiTelepulesImportData { get; set; }
|
||||
|
||||
[MaxLength(250, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimOrszag), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimOrszagImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimTelepules), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimTelepulesImportData { get; set; }
|
||||
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimIranyitoszam), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimIranyitoszamImportData { get; set; }
|
||||
|
||||
[MaxLength(40, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimKozteruletNev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimKozteruletNevImportData { get; set; }
|
||||
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimKozteruletJelleg), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimKozteruletJellegImportData { get; set; }
|
||||
|
||||
[MaxLength(30, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimHazszam), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimHazszamImportData { get; set; }
|
||||
|
||||
[MaxLength(250, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimOrszag), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimOrszagImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimTelepules), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimTelepulesImportData { get; set; }
|
||||
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimIranyitoszam), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimIranyitoszamImportData { get; set; }
|
||||
|
||||
[MaxLength(40, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimKozteruletNev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimKozteruletNevImportData { get; set; }
|
||||
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimKozteruletJelleg), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimKozteruletJellegImportData { get; set; }
|
||||
|
||||
[MaxLength(30, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimHazszam), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimHazszamImportData { get; set; }
|
||||
|
||||
#region Unused Import Data
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameFenntartoAzonosito), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string FenntartoAzonositoImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameFenntartoMegnevezese), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string FenntartoMegnevezeseImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameErvenyesKotelezettsegTipusa), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ErvenyesKotelezettsegTipusaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameViseltNevNevsorrend), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ViseltNevNevsorrendImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameSzuletesiElonev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string SzuletesiElonevImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameSzuletesiNevNevsorrend), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string SzuletesiNevNevsorrendImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAnyjaNeveElonev), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AnyjaNeveElonevImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAnyjaNeveNevsorrend), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AnyjaNeveNevsorrendImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimPontositas), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string TartozkodasiCimPontositasImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAllandoLakcimPontositas), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AllandoLakcimPontositasImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameErvenyesKotelezettsegKezdete), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ErvenyesKotelezettsegKezdeteImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameErvenyesKotelezettsegVege), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string ErvenyesKotelezettsegVegeImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameHalasztasJogcime), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string HalasztasJogcimeImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameHalasztastEngedelyezoSzervTipusa), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string HalasztastEngedelyezoSzervTipusaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameHalasztastEngedelyezoSzervMegnevezese), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string HalasztastEngedelyezoSzervMegnevezeseImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameHalasztasHatalyaVegdatuma), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string HalasztasHatalyaVegdatumaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoAktivVagySzuneteloJogviszonya), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoAktivVagySzuneteloJogviszonyaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyTipusa), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyTipusaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyStatusza), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyStatuszaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyIntezmenyOmAzonositoja), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyIntezmenyOmAzonositojaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyIntezmenyNeve), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyIntezmenyNeveImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyUgyviteliHelySorszama), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyUgyviteliHelySorszamaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyUgyviteliHelyAzonositoja), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyUgyviteliHelyAzonositojaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyUgyviteliHelyNeve), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyUgyviteliHelyNeveImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyUgyviteliHelyCime), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyUgyviteliHelyCimeImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonyKezdete), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonyKezdeteImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonySzunetelesenekKezdete), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonySzunetelesenekKezdeteImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonySzunetelesenekVarhatoVege), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonySzunetelesenekVarhatoVegeImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettseghezKapcsolodoJogviszonySzunetelesJogcime), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettseghezKapcsolodoJogviszonySzunetelesJogcimeImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameKotelezettsegetAzIlletekesFenntartohozTartozoIntezmenybenTeljesiti), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string KotelezettsegetAzIlletekesFenntartohozTartozoIntezmenybenTeljesitiImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportNebuloResource.ImportHeaderNameAzUtolsoKotelezettsegetTeljesitoJogviszonyVegdatuma), ResourceType = typeof(ImportExportNebuloResource))]
|
||||
public string AzUtolsoKotelezettsegetTeljesitoJogviszonyVegdatumaImportData { get; set; }
|
||||
|
||||
#endregion Unused Import Data
|
||||
|
||||
public string Elotag => GetStringValue(ViseltElonevImportData);
|
||||
|
||||
public string Vezeteknev => GetStringValue(ViseltVezeteknevImportData);
|
||||
|
||||
public string Keresztnev => GetStringValue(ViseltKeresztnevImportData);
|
||||
|
||||
public string SzuletesiVezeteknev => GetStringValue(SzuletesiVezeteknevImportData);
|
||||
|
||||
public string SzuletesiKeresztnev => GetStringValue(SzuletesiKeresztnevImportData);
|
||||
|
||||
public string AnyjaVezeteknev => GetStringValue(AnyjaNeveVezeteknevImportData);
|
||||
|
||||
public string AnyjaKeresztnev => GetStringValue(AnyjaNeveKeresztnevImportData);
|
||||
|
||||
public string SzuletesiHely => GetStringValue(SzuletesiTelepulesImportData);
|
||||
|
||||
public DateTime? SzuletesiIdo => GetDateTimeValue(SzuletesiIdoImportData);
|
||||
|
||||
public string SzuletesiIdoString => GetDateTimeString(SzuletesiIdo);
|
||||
|
||||
public string OktatasiAzonositoSzama => GetStringValue(OktatasiAzonositoSzamImportData);
|
||||
|
||||
public int? OrszagTipusId => ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(AllandoLakcimOrszagImportData, _tanevId);
|
||||
|
||||
public string HelysegNev => GetStringValue(AllandoLakcimTelepulesImportData);
|
||||
|
||||
public string Iranyitoszam => GetStringValue(AllandoLakcimIranyitoszamImportData);
|
||||
|
||||
public string KozteruletNev => GetStringValue(AllandoLakcimKozteruletNevImportData);
|
||||
|
||||
public int? KozteruletJellegeId => ((int)GeneratedAdatszotarTipusEnum.KozteruletJelleg).GetItemIdByTypeAndName(AllandoLakcimKozteruletJellegImportData, _tanevId);
|
||||
|
||||
public string KozteruletJellegeNev => KozteruletJellegeId.GetDisplayName<KozteruletJellegEnum>(_tanevId, defaultValue: null);
|
||||
|
||||
public string Hazszam => GetStringValue(AllandoLakcimHazszamImportData);
|
||||
|
||||
public int? ThOrszagTipusId => ((int)GeneratedAdatszotarTipusEnum.OrszagTipus).GetItemIdByTypeAndName(TartozkodasiCimOrszagImportData, _tanevId);
|
||||
|
||||
public string ThHelysegNev => GetStringValue(TartozkodasiCimTelepulesImportData);
|
||||
|
||||
public string ThIranyitoszam => GetStringValue(TartozkodasiCimIranyitoszamImportData);
|
||||
|
||||
public string ThKozteruletNev => GetStringValue(TartozkodasiCimKozteruletNevImportData);
|
||||
|
||||
public int? ThKozteruletJellegeId => ((int)GeneratedAdatszotarTipusEnum.KozteruletJelleg).GetItemIdByTypeAndName(TartozkodasiCimKozteruletJellegImportData, _tanevId);
|
||||
|
||||
public string ThKozteruletJellegeNev => ThKozteruletJellegeId.GetDisplayName<KozteruletJellegEnum>(_tanevId, defaultValue: null);
|
||||
|
||||
public string ThHazszam => GetStringValue(TartozkodasiCimHazszamImportData);
|
||||
|
||||
//NOTE: A tartózkodási címe azonos, ha minden értéke üres az importban.
|
||||
public bool ThCimeAzonos =>
|
||||
!ThOrszagTipusId.IsEntityId() &&
|
||||
string.IsNullOrWhiteSpace(ThHelysegNev) &&
|
||||
string.IsNullOrWhiteSpace(ThIranyitoszam) &&
|
||||
string.IsNullOrWhiteSpace(ThKozteruletNev) &&
|
||||
!ThKozteruletJellegeId.IsEntityId() &&
|
||||
string.IsNullOrWhiteSpace(ThHazszam);
|
||||
|
||||
public int? FeladatellatasiHelyId { get; set; }
|
||||
|
||||
public int FelvetelStatuszaId { get; set; }
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(SzuletesiIdoImportData))
|
||||
{
|
||||
//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, ImportExportNebuloResource.ImportHeaderNameSzuletesiIdo.ToLowerInvariant(), SzuletesiIdoImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
var minimumDate = new DateTime(Now.Date.Year - 18, 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(BeiratkozasResource.ASzuletesiIdoCsakKozeEshet,
|
||||
minimumDate.ToString(Constants.ToStringPattern.HungarianDate),
|
||||
maximumDate.ToString(Constants.ToStringPattern.HungarianDate)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(AllandoLakcimOrszagImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!OrszagTipusId.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidFormat, ImportExportNebuloResource.ImportHeaderNameAllandoLakcimOrszag.ToLowerInvariant(), AllandoLakcimOrszagImportData));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(AllandoLakcimKozteruletJellegImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!KozteruletJellegeId.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidFormat, ImportExportNebuloResource.ImportHeaderNameAllandoLakcimKozteruletJelleg.ToLowerInvariant(), AllandoLakcimKozteruletJellegImportData));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(TartozkodasiCimOrszagImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!ThOrszagTipusId.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidFormat, ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimOrszag.ToLowerInvariant(), TartozkodasiCimOrszagImportData));
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(TartozkodasiCimKozteruletJellegImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!ThKozteruletJellegeId.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidFormat, ImportExportNebuloResource.ImportHeaderNameTartozkodasiCimKozteruletJelleg.ToLowerInvariant(), TartozkodasiCimKozteruletJellegImportData));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class NebuloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public NebuloImportJsonItemCo(NebuloImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Elotag = importItemCo.Elotag;
|
||||
Vezeteknev = importItemCo.Vezeteknev;
|
||||
Keresztnev = importItemCo.Keresztnev;
|
||||
SzuletesiVezeteknev = importItemCo.SzuletesiVezeteknev;
|
||||
SzuletesiKeresztnev = importItemCo.SzuletesiKeresztnev;
|
||||
AnyjaVezeteknev = importItemCo.AnyjaVezeteknev;
|
||||
AnyjaKeresztnev = importItemCo.AnyjaKeresztnev;
|
||||
SzuletesiHely = importItemCo.SzuletesiHely;
|
||||
SzuletesiIdo = importItemCo.SzuletesiIdo;
|
||||
SzuletesiIdoString = importItemCo.SzuletesiIdoString;
|
||||
|
||||
OktatasiAzonositoSzama = importItemCo.OktatasiAzonositoSzama;
|
||||
|
||||
OrszagTipusId = importItemCo.OrszagTipusId;
|
||||
HelysegNev = importItemCo.HelysegNev;
|
||||
Iranyitoszam = importItemCo.Iranyitoszam;
|
||||
KozteruletNev = importItemCo.KozteruletNev;
|
||||
KozteruletJellegeId = importItemCo.KozteruletJellegeId;
|
||||
KozteruletJellegeNev = importItemCo.KozteruletJellegeNev;
|
||||
Hazszam = importItemCo.Hazszam;
|
||||
|
||||
ThOrszagTipusId = importItemCo.ThOrszagTipusId;
|
||||
ThHelysegNev = importItemCo.ThHelysegNev;
|
||||
ThIranyitoszam = importItemCo.ThIranyitoszam;
|
||||
ThKozteruletNev = importItemCo.ThKozteruletNev;
|
||||
ThKozteruletJellegeId = importItemCo.ThKozteruletJellegeId;
|
||||
ThKozteruletJellegeNev = importItemCo.ThKozteruletJellegeNev;
|
||||
ThHazszam = importItemCo.ThHazszam;
|
||||
|
||||
ThCimeAzonos = SDAConvert.ToSDABoolean(importItemCo.ThCimeAzonos);
|
||||
|
||||
FeladatellatasiHelyId = importItemCo.FeladatellatasiHelyId;
|
||||
FelvetelStatuszaId = importItemCo.FelvetelStatuszaId;
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_ELOTAG")]
|
||||
public string Elotag { get; set; }
|
||||
|
||||
[JsonProperty("C_TANULOCSALADINEVE")]
|
||||
public string Vezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("C_TANULOUTONEVE")]
|
||||
public string Keresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESICSALADINEVE")]
|
||||
public string SzuletesiVezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIUTONEVE")]
|
||||
public string SzuletesiKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_EDESANYJASZULETESICSALADINEV")]
|
||||
public string AnyjaVezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("C_EDESANYJASZULETESIUTONEVE")]
|
||||
public string AnyjaKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIHELY")]
|
||||
public string SzuletesiHely { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? SzuletesiIdo { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIIDO")]
|
||||
public string SzuletesiIdoString { get; set; }
|
||||
|
||||
[JsonProperty("C_OKTATASIAZONOSITOSZAMA")]
|
||||
public string OktatasiAzonositoSzama { get; set; }
|
||||
|
||||
[JsonProperty("C_ORSZAGTIPUSID")]
|
||||
public int? OrszagTipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_HELYSEGNEV")]
|
||||
public string HelysegNev { get; set; }
|
||||
|
||||
[JsonProperty("C_IRANYITOSZAM")]
|
||||
public string Iranyitoszam { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULETNEV")]
|
||||
public string KozteruletNev { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULETJELLEGE")]
|
||||
public int? KozteruletJellegeId { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULETJELLEGENEV")]
|
||||
public string KozteruletJellegeNev { get; set; }
|
||||
|
||||
[JsonProperty("C_HAZSZAM")]
|
||||
public string Hazszam { get; set; }
|
||||
|
||||
[JsonProperty("C_THORSZAGTIPUSID")]
|
||||
public int? ThOrszagTipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_THHELYSEGNEV")]
|
||||
public string ThHelysegNev { get; set; }
|
||||
|
||||
[JsonProperty("C_THIRANYITOSZAM")]
|
||||
public string ThIranyitoszam { get; set; }
|
||||
|
||||
[JsonProperty("C_THKOZTERULETNEV")]
|
||||
public string ThKozteruletNev { get; set; }
|
||||
|
||||
[JsonProperty("C_THKOZTERULETJELLEGE")]
|
||||
public int? ThKozteruletJellegeId { get; set; }
|
||||
|
||||
[JsonProperty("C_THKOZTERULETJELLEGENEV")]
|
||||
public string ThKozteruletJellegeNev { get; set; }
|
||||
|
||||
[JsonProperty("C_THHAZSZAM")]
|
||||
public string ThHazszam { get; set; }
|
||||
|
||||
[JsonProperty("C_TARTOZKODASIHELYAZONOS")]
|
||||
public string ThCimeAzonos { get; set; }
|
||||
|
||||
[JsonProperty("C_FELADATELLATASIHELYID")]
|
||||
public int? FeladatellatasiHelyId { get; set; }
|
||||
|
||||
[JsonProperty("C_FELVETELSTATUSZA")]
|
||||
public int FelvetelStatuszaId { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_SZULETESIORSZAG")]
|
||||
public int SzuletesiOrszag => (int)OrszagTipusEnum.Magyarorszag;
|
||||
|
||||
[JsonProperty("C_KEPVISELO2CIMEAZONOS")]
|
||||
public string TkCimeAzonos => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_ALLAMPOLGARSAGA")]
|
||||
public int Allampolgarsag => (int)AllampolgarsagEnum.magyar;
|
||||
|
||||
[JsonProperty("C_ANYANYELVE")]
|
||||
public int Anyanyelv => (int)AnyanyelvEnum.magyar;
|
||||
|
||||
[JsonProperty("C_TAGOZAT")]
|
||||
public int Tagozat => (int)TagozatTipusEnum.Normal_egesz_napos_iskola;
|
||||
|
||||
[JsonProperty("C_ELETVITELSZERUOTTLAKASKORZET")]
|
||||
public string EletvitelszeruOttLakasKorzetes => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_SNILETSZAMSULY")]
|
||||
public int SniLetszamSuly => 1;
|
||||
|
||||
[JsonProperty("C_BTMLETSZAMSULY")]
|
||||
public int BtmLetszamSuly => 1;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
581
Kreta.BusinessLogic/HelperClasses/ImportCo/OrarendImportCo.cs
Normal file
581
Kreta.BusinessLogic/HelperClasses/ImportCo/OrarendImportCo.cs
Normal file
|
@ -0,0 +1,581 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Enums.ManualEnums.ImportExport;
|
||||
using Kreta.Enums.ManualEnums.SystemSettings;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class OrarendImportCo : BaseTantargyfelosztasImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<OrarendImportItemCo> MainImportItemList { get; set; } = new List<OrarendImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<OrarendImportItemCo> NemImportalhatoItemList { get; set; } = new List<OrarendImportItemCo>();
|
||||
|
||||
[JsonProperty("T_ORARENDIORA_OSSZES")]
|
||||
public List<OrarendImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_TEREM_OSSZES")]
|
||||
public List<TeremImportJsonItemCo> TeremImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_FOGLALKOZAS_OSSZES")]
|
||||
public List<TantargyfelosztasImportJsonItemCo> TantargyfelosztasImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int OrarendImportMuvelet { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int MukodesiHelyId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int OrarendImportTipus { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsNapirendImport { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsTtfImport { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? OrarendiOraLezarasDateTime { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanevrendOsztalyokkalNaptipusTulajdonsagokkalCO> TanevrendOsztalyokkalNaptipusTulajdonsagokkalCOs { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<string> TantargyNincsBeloleOra { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TantargyfelosztasItemCo> TantargyfelosztasCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public SystemSettingsOrarendiElemekRogzitesenekElofelteteleEnum OrarendiElemekRogzitesenekElofeltetele { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate(bool isAktivTanev)
|
||||
{
|
||||
Dictionary<int, List<ValidationResult>> validationResultDictionary = Validate(GetBaseImportItemCoList());
|
||||
|
||||
foreach (OrarendImportItemCo importItem in MainImportItemList)
|
||||
{
|
||||
|
||||
var tantargyNevToCompare = importItem.TantargyNev?.ToComparableString();
|
||||
var tanarNevToCompare = importItem.TanarNev?.ToComparableString();
|
||||
var osztalyCsoportNevToCompare = importItem.OsztalyCsoportNev?.ToComparableString();
|
||||
|
||||
var validationResultList = new List<ValidationResult>();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(tantargyNevToCompare) && TantargyNincsBeloleOra.Any(t => t.ToComparableString() == tantargyNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportOrarendResource.AMegadottTantargyhozNemRogzithetoOraAzOrarendbenABeallitottParametereAlapjan));
|
||||
}
|
||||
|
||||
if (importItem.IsOsszefuggoSzakmaiGyakorlat && isAktivTanev)
|
||||
{
|
||||
var csoportNevToCompare = importItem.CsoportNev?.ToComparableString();
|
||||
var osztalyNevToCompare = importItem.OsztalyNev?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(osztalyNevToCompare) && string.IsNullOrWhiteSpace(csoportNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportOrarendResource.OsszefuggoSzakmaiGyakorlatImportalasaEsetenNemImportalhatoakOsztalyokNincsMegadvaCsoportCsakOsztaly));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(osztalyNevToCompare) && OsztalyCoList.All(x => x.NevComparableString != osztalyNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportOrarendResource.OsszefuggoSzakmaiGyakorlatImportalasaEsetenNemImportalhatoakOsztalyokCsakOlyanOsztalyAdhatoMegAmiSzerepelAzAdatbazisban));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(csoportNevToCompare) &&
|
||||
CsoportCoList.Any(x =>
|
||||
x.NevComparableString == csoportNevToCompare &&
|
||||
x.TipusId != (int)CsoportTipusEnum.OsszefuggoSzakmaiGyakorlatiCsoport))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportOrarendResource.OsszefuggoSzakmaiGyakorlatImportalasaEsetenCsakOsszefuggoSzakmaiGyakorlatTipusuCsoportokhozImportalhatoOrarend));
|
||||
}
|
||||
}
|
||||
|
||||
if (OrarendiElemekRogzitesenekElofeltetele != SystemSettingsOrarendiElemekRogzitesenekElofelteteleEnum.NincsTTF)
|
||||
{
|
||||
if (!IsTtfImport && !TantargyfelosztasCoList.Any(x => x.TanarNevComparableString == tanarNevToCompare && x.TantargyNevComparableString == tantargyNevToCompare && x.OsztalyCsoportNevComparableString == osztalyCsoportNevToCompare))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportOrarendResource.AzOraNemSzerepelATantargyfelosztasban));
|
||||
}
|
||||
if (OrarendiElemekRogzitesenekElofeltetele == SystemSettingsOrarendiElemekRogzitesenekElofelteteleEnum.NemNullasTTF && !IsTtfImport && TantargyfelosztasCoList.Any(x => x.TanarNevComparableString == tanarNevToCompare && x.TantargyNevComparableString == tantargyNevToCompare && x.OsztalyCsoportNevComparableString == osztalyCsoportNevToCompare && x.Oraszam == 0))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportOrarendResource.AzOraNullaHetiOraszammalSzerepelATantargyfelosztasban));
|
||||
}
|
||||
}
|
||||
|
||||
var teremNevToCompare = importItem.TeremNev?.ToComparableString();
|
||||
if (teremNevToCompare != null)
|
||||
{
|
||||
var teremCo = TeremCoList.SingleOrDefault(x => x.Nev.ToComparableString().Equals(teremNevToCompare));
|
||||
if (teremCo != null && teremCo.SzervezetId.HasValue)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportCommonResource.DualisKepzeshezKapcsolodoElemekImportalasaNemLehetseges));
|
||||
}
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
if (validationResultDictionary.ContainsKey(importItem.LineNumber))
|
||||
{
|
||||
validationResultDictionary[importItem.LineNumber].AddRange(validationResultList);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>();
|
||||
if (OrarendImportTipus == (int)OrarendImportTipusEnum.ErvenyessegiIdovelImport)
|
||||
{
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameOraErvenyessegKezdete);
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameOraErvenyessegVege);
|
||||
}
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameHetirend);
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameNap);
|
||||
if (!IsNapirendImport)
|
||||
{
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameOra);
|
||||
}
|
||||
else
|
||||
{
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameFoglalkozasKezdete);
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameFoglalkozasVege);
|
||||
}
|
||||
duplicatedRowConditonTextList.Add($"{ImportExportTantargyfelosztasResource.ImportHeaderNameOsztaly}/{ImportExportTantargyfelosztasResource.ImportHeaderNameCsoport}");
|
||||
duplicatedRowConditonTextList.Add(ImportExportTantargyfelosztasResource.ImportHeaderNameTantargy);
|
||||
duplicatedRowConditonTextList.Add(ImportExportTantargyfelosztasResource.ImportHeaderNameTanar);
|
||||
duplicatedRowConditonTextList.Add(ImportExportOrarendResource.ImportHeaderNameHelyiseg);
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
|
||||
public List<BaseTantargyfelosztasImportItemCo> GetBaseImportItemCoList()
|
||||
{
|
||||
var result = MainImportItemList.ConvertAll(new Converter<OrarendImportItemCo, BaseTantargyfelosztasImportItemCo>(x => x));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public class OrarendImportItemCo : BaseTantargyfelosztasImportItemCo, IValidatableObject
|
||||
{
|
||||
internal readonly int _tanevId;
|
||||
|
||||
internal readonly bool _isAktivTanev;
|
||||
|
||||
private OrarendImportItemCo() { }
|
||||
|
||||
public OrarendImportItemCo(int tanevId, bool isAktivTanev)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
_isAktivTanev = isAktivTanev;
|
||||
}
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameOraErvenyessegKezdete), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string OraErvenyessegKezdeteImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameOraErvenyessegVege), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string OraErvenyessegVegeImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameHetirend), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string HetirendImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameNap), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string NapImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameOra), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string OraImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameFoglalkozasKezdete), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string FoglalkozasKezdeteImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameFoglalkozasVege), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string FoglalkozasVegeImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportOrarendResource.ImportHeaderNameHelyiseg), ResourceType = typeof(ImportExportOrarendResource))]
|
||||
public string HelyisegImportData { get; set; }
|
||||
|
||||
public DateTime? OraErvenyessegKezdete => GetDateTimeValue(OraErvenyessegKezdeteImportData);
|
||||
|
||||
public string OraErvenyessegKezdeteString => GetDateTimeString(OraErvenyessegKezdete);
|
||||
|
||||
public DateTime? OraErvenyessegVege => GetDateTimeValue(OraErvenyessegVegeImportData);
|
||||
|
||||
public string OraErvenyessegVegeString => GetDateTimeString(OraErvenyessegVege);
|
||||
|
||||
public string HetirendTipusNev => GetStringValue(HetirendImportData);
|
||||
|
||||
public int? HetNapjaTipusId => ((int)GeneratedAdatszotarTipusEnum.HetNapjaTipus).GetItemIdByTypeAndName(NapImportData, _tanevId);
|
||||
|
||||
public int? OraSorszam => GetIntValue(OraImportData);
|
||||
|
||||
public DateTime? OraKezdete => OraSorszam == null ? GetDateTimeValueFromTimeString(FoglalkozasKezdeteImportData) : CsengetesiRendOraCoList.SingleOrDefault(x => x.Oraszam == OraSorszam)?.Kezd;
|
||||
|
||||
public string OraKezdeteString => GetDateTimeString(OraKezdete);
|
||||
|
||||
public string OraVegeString => GetDateTimeString(OraVege);
|
||||
|
||||
public string TeremNev => GetStringValue(HelyisegImportData);
|
||||
|
||||
public double? Oraszam => 1;
|
||||
|
||||
public DateTime? OraVege { get; set; }
|
||||
|
||||
public int OperationTantargyfelosztas { get; set; }
|
||||
|
||||
public string CompareHashTantargyfelosztas { get; set; }
|
||||
|
||||
public int OperationTerem { get; set; }
|
||||
|
||||
public string CompareHashTerem { get; set; }
|
||||
|
||||
public DateTime OraErvenyessegMinDate { get; set; }
|
||||
|
||||
public DateTime OraErvenyessegMaxDate { get; set; }
|
||||
|
||||
public Dictionary<int, string> HetirendTipusDictionary { get; set; }
|
||||
|
||||
public int? CsengetesiRendId { get; set; }
|
||||
|
||||
public int? CsengetesiRendOraId { get; set; }
|
||||
|
||||
public List<CsengetesiRendOraCO> CsengetesiRendOraCoList { get; set; }
|
||||
|
||||
public int? HetirendTipusId { get; set; }
|
||||
|
||||
public bool IsNapirendImport { get; set; }
|
||||
|
||||
public int FoglalkozasokRogziteseHetvegereId { get; set; }
|
||||
|
||||
public bool IsEgyediNap => OraErvenyessegKezdete?.Equals(OraErvenyessegVege) ?? false;
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
string korabbiMessage = IsOsszefuggoSzakmaiGyakorlat && _isAktivTanev ? ImportExportOrarendResource.OsszefuggoSzakmaiGyakorlatKezdete : ImportExportCommonResource.ElsoTanitasiNap;
|
||||
string kesobbiMessage = IsOsszefuggoSzakmaiGyakorlat && _isAktivTanev ? ImportExportOrarendResource.OsszefuggoSzakmaiGyakorlatVege : ImportExportCommonResource.UtolsoTanitasiNap;
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
// Ha nem, akkor azt később beállítjuk a tanév első tanítási napjára, de azt nem kell validálnunk!
|
||||
if (!string.IsNullOrWhiteSpace(OraErvenyessegKezdeteImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!OraErvenyessegKezdete.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidDatumFormat, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegKezdete.ToLowerInvariant(), OraErvenyessegKezdeteImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (OraErvenyessegKezdete < OraErvenyessegMinDate)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidKorabbiDatum, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegKezdete, OraErvenyessegKezdete.Value.ToString(Constants.ToStringPattern.HungarianDate), korabbiMessage.ToLowerInvariant(), OraErvenyessegMinDate.ToString(Constants.ToStringPattern.HungarianDate)));
|
||||
}
|
||||
else if (OraErvenyessegKezdete > OraErvenyessegMaxDate)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidKesobbiDatum, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegKezdete, OraErvenyessegKezdete.Value.ToString(Constants.ToStringPattern.HungarianDate), kesobbiMessage.ToLowerInvariant(), OraErvenyessegMaxDate.ToString(Constants.ToStringPattern.HungarianDate)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
// Ha nincs, akkor azt később beállítjuk a tanév utolsó tanítási napjára, de azt nem kell validálnunk!
|
||||
if (!string.IsNullOrWhiteSpace(OraErvenyessegVegeImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!OraErvenyessegVege.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidDatumFormat, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegVege.ToLowerInvariant(), OraErvenyessegVegeImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (OraErvenyessegVege < OraErvenyessegMinDate)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidKorabbiDatum, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegVege, OraErvenyessegVege.Value.ToString(Constants.ToStringPattern.HungarianDate), korabbiMessage.ToLowerInvariant(), OraErvenyessegMinDate.ToString(Constants.ToStringPattern.HungarianDate)));
|
||||
}
|
||||
else if (OraErvenyessegVege > OraErvenyessegMaxDate)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidKesobbiDatum, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegVege, OraErvenyessegVege.Value.ToString(Constants.ToStringPattern.HungarianDate), kesobbiMessage.ToLowerInvariant(), OraErvenyessegMaxDate.ToString(Constants.ToStringPattern.HungarianDate)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (OraErvenyessegKezdete.HasValue && OraErvenyessegVege.HasValue)
|
||||
{
|
||||
if (OraErvenyessegKezdete > OraErvenyessegVege)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidKesobbiDatum, ImportExportOrarendResource.ImportHeaderNameOraErvenyessegKezdete, OraErvenyessegKezdete.Value.ToString(Constants.ToStringPattern.HungarianDate), ImportExportOrarendResource.ImportHeaderNameOraErvenyessegVege.ToLowerInvariant(), OraErvenyessegVege.Value.ToString(Constants.ToStringPattern.HungarianDate)));
|
||||
}
|
||||
}
|
||||
|
||||
if (!HetirendTipusId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportOrarendResource.InvalidOrarendHetirend, HetirendImportData));
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(NapImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!HetNapjaTipusId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportOrarendResource.ImportHeaderNameNap.ToLowerInvariant(), NapImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
bool isErvenyesNap = true;
|
||||
switch (FoglalkozasokRogziteseHetvegereId)
|
||||
{
|
||||
case (int)FoglalkozasokRogziteseHetvegere.CsakSzombat:
|
||||
isErvenyesNap = HetNapjaTipusId != (int)HetNapjaTipusEnum.Vasarnap;
|
||||
break;
|
||||
case (int)FoglalkozasokRogziteseHetvegere.NemEngedelyezett:
|
||||
isErvenyesNap = HetNapjaTipusId != (int)HetNapjaTipusEnum.Vasarnap && HetNapjaTipusId != (int)HetNapjaTipusEnum.Szombat;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!isErvenyesNap)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportOrarendResource.InvalidNapirend, HetNapjaTipusId.GetDisplayName<HetNapjaTipusEnum>(_tanevId)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!IsNapirendImport)
|
||||
{
|
||||
//NOTE: Ha nincs megadva érték az import data-ban, akkor hiba, ha van, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (string.IsNullOrWhiteSpace(OraImportData))
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportOrarendResource.ImportHeaderNameOra.ToLowerInvariant(), OraImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!OraSorszam.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportOrarendResource.ImportHeaderNameOra.ToLowerInvariant(), OraImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: Ha nincs csengetési rend vagy nem szerepel az óraszám a csengetési rendben akkor hibát dobunk!
|
||||
if (!CsengetesiRendId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportOrarendResource.InvalidCsengetesiRend);
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: Korábban beállítottuk a CsengetesiRendOraId az óra sorszám alapján, ezért ha a CsengetesiRendOraId-nak nincs értéke, akkor nem megfelelő az óra sorszám!
|
||||
if (!CsengetesiRendOraId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportOrarendResource.InvalidOraszam, OraSorszam));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(FoglalkozasKezdeteImportData) || !OraKezdete.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidFormat, ImportExportOrarendResource.ImportHeaderNameFoglalkozasKezdete.ToLowerInvariant(), FoglalkozasKezdeteImportData));
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(FoglalkozasVegeImportData) || !OraVege.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidFormat, ImportExportOrarendResource.ImportHeaderNameFoglalkozasVege.ToLowerInvariant(), FoglalkozasVegeImportData));
|
||||
}
|
||||
|
||||
if (OraKezdete.HasValue && OraVege.HasValue)
|
||||
{
|
||||
if (OraKezdete > OraVege)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidKesobbiIdopont, ImportExportOrarendResource.ImportHeaderNameFoglalkozasKezdete, OraKezdete.Value.ToString(Constants.ToStringPattern.HungarianTime), ImportExportOrarendResource.ImportHeaderNameFoglalkozasVege.ToLowerInvariant(), OraVege.Value.ToString(Constants.ToStringPattern.HungarianTime)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(OsztalyNev) && string.IsNullOrWhiteSpace(CsoportNev))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.OsztalyOrCsoportRequired);
|
||||
}
|
||||
else if (OsztalyNev == CsoportNev)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.OsztalyCsoportNemLehetEgyenlo);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class OrarendImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public OrarendImportJsonItemCo(OrarendImportItemCo importItemCo, OrarendImportFileUploadCo orarendImportFileUploadCo, bool isVegzos, IConnectionType connectionType) : base(connectionType.TanevId, connectionType.IntezmenyId, connectionType.FelhasznaloId)
|
||||
{
|
||||
OsztalyCsoportNev = importItemCo.OsztalyCsoportNev;
|
||||
TantargyNev = importItemCo.TantargyNev;
|
||||
TeremNev = importItemCo.TeremNev;
|
||||
OraSorszam = importItemCo.OraSorszam;
|
||||
CsengetesiRendId = importItemCo.CsengetesiRendId;
|
||||
CsengetesiRendOraId = importItemCo.CsengetesiRendOraId;
|
||||
|
||||
//NOTE: Az TanarId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanár id-ja!
|
||||
TanarId = importItemCo.TanarId.Value;
|
||||
TanarNev = importItemCo.TanarNev;
|
||||
|
||||
//NOTE: Az HetirendTipusId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van hetirend típusa!
|
||||
HetirendTipusId = importItemCo.HetirendTipusId.Value;
|
||||
HetirendTipusNev = importItemCo.HetirendTipusNev;
|
||||
|
||||
DateTime oraErvenyessegKezdete = importItemCo.OraErvenyessegKezdete ?? orarendImportFileUploadCo.OraErvenyessegMinDate;
|
||||
OraErvenyessegKezdete = oraErvenyessegKezdete;
|
||||
OraErvenyessegKezdeteString = oraErvenyessegKezdete.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
DateTime oraErvenyessegVege;
|
||||
//NOTE: Ha a végzős évfolyamú az osztály és az utolsó tanítási nap későbbi, mint az felhasználó által beállított óra érvényesség kezdete,
|
||||
// akkor az eredeti utolsó tanítási napig állítjuk be az óra érvényesség végét, különben a végzősig.
|
||||
if (isVegzos && oraErvenyessegKezdete < orarendImportFileUploadCo.OraErvenyessegVegzosMaxDate.AddDays(1))
|
||||
{
|
||||
oraErvenyessegVege = importItemCo.OraErvenyessegVege == null || importItemCo.OraErvenyessegVege.Value > orarendImportFileUploadCo.OraErvenyessegVegzosMaxDate ? orarendImportFileUploadCo.OraErvenyessegVegzosMaxDate : importItemCo.OraErvenyessegVege.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
oraErvenyessegVege = importItemCo.OraErvenyessegVege ?? orarendImportFileUploadCo.OraErvenyessegMaxDate;
|
||||
}
|
||||
|
||||
OraErvenyessegVege = oraErvenyessegVege;
|
||||
|
||||
//NOTE: Az OraErvenyessegVege 00:00-t tartalmaz, de aznap napközben még lehet óra, ezért a következő nap 00:00 időpont a jó és azt mentjük a db-be,
|
||||
// kivéve, amikor az OraErvenyessegKezdete és OraErvenyessegVege megegyezik, mert akkor akkor meg kell egyezniük(és lehet akár egyedi nap is)!
|
||||
if (importItemCo.IsEgyediNap)
|
||||
{
|
||||
OraErvenyessegVegeString = oraErvenyessegVege.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
EgyediNapCo egyediNapCo = new NaptariNapHelper(connectionType).GetIsEgyediNapByDateAndOsztalyCsoportNev(oraErvenyessegKezdete, importItemCo.OsztalyCsoportNev);
|
||||
IsEgyediNap = SDAConvert.ToSDABoolean(egyediNapCo.IsEgyediNap);
|
||||
HetNapjaTipusId = egyediNapCo.IsEgyediNap ? egyediNapCo.HetNapjaTipusId.Value : importItemCo.HetNapjaTipusId.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
OraErvenyessegVegeString = oraErvenyessegVege.AddDays(1).ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
IsEgyediNap = SDAConvert.ToSDABoolean(false);
|
||||
//NOTE: Az HetNapjaTipusId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van hét napjának típusa!
|
||||
HetNapjaTipusId = importItemCo.HetNapjaTipusId.Value;
|
||||
}
|
||||
IsKezzelFelvettEgyediNap = IsEgyediNap;
|
||||
|
||||
//NOTE: Az OraKezdete.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van óra kezdete!
|
||||
DateTime oraKezdete = importItemCo.OraKezdete.Value;
|
||||
OraKezdete = oraKezdete;
|
||||
OraKezdeteString = oraKezdete.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
//NOTE: Az OraVege.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van óra vége!
|
||||
DateTime oraVege = importItemCo.OraVege.Value;
|
||||
OraVege = oraVege;
|
||||
OraVegeString = oraVege.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("OsztalyCsoportNev")]
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
[JsonProperty("TantargyNev")]
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
[JsonProperty("TeremNev")]
|
||||
public string TeremNev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanarNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TANARID")]
|
||||
public int TanarId { get; set; }
|
||||
|
||||
[JsonProperty("C_HETIREND")]
|
||||
public int HetirendTipusId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string HetirendTipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_HETNAPJA")]
|
||||
public int HetNapjaTipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_ORASZAM")]
|
||||
public int? OraSorszam { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime OraKezdete { get; set; }
|
||||
|
||||
[JsonProperty("C_ORAKEZDETE")]
|
||||
public string OraKezdeteString { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime OraVege { get; set; }
|
||||
|
||||
[JsonProperty("C_ORAVEGE")]
|
||||
public string OraVegeString { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? OraErvenyessegKezdete { get; set; }
|
||||
|
||||
[JsonProperty("C_ORAERVENYESSEGKEZDETE")]
|
||||
public string OraErvenyessegKezdeteString { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? OraErvenyessegVege { get; set; }
|
||||
|
||||
[JsonProperty("C_ORAERVENYESSEGVEGE")]
|
||||
public string OraErvenyessegVegeString { get; set; }
|
||||
|
||||
[JsonProperty("C_CSENGETESIRENDID")]
|
||||
public int? CsengetesiRendId { get; set; }
|
||||
|
||||
[JsonProperty("C_CSENGETESIRENDORAID")]
|
||||
public int? CsengetesiRendOraId { get; set; }
|
||||
|
||||
[JsonProperty("C_EGYEDINAP")]
|
||||
public string IsEgyediNap { get; set; }
|
||||
|
||||
[JsonProperty("C_ISKEZZELFELVETTEGYEDINAP")]
|
||||
public string IsKezzelFelvettEgyediNap { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_BONTOTT")]
|
||||
public string Bontott => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ORATULAJDONOSID")]
|
||||
public int OratulajdonosId => Creator;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class OrarendImportFileUploadCo
|
||||
{
|
||||
public List<List<string>> ImportData { get; set; }
|
||||
|
||||
public int OrarendImportMuvelet { get; set; }
|
||||
|
||||
public int OrarendImportTipus { get; set; }
|
||||
|
||||
public bool IsNapirendImport { get; set; }
|
||||
|
||||
public bool IsTtfImport { get; set; }
|
||||
|
||||
public bool IsOraszamUpdate { get; set; }
|
||||
|
||||
public bool IsOsszefuggoSzakmaiGyakorlat { get; set; }
|
||||
|
||||
public int FeladatellatasiHelyId { get; set; }
|
||||
|
||||
public DateTime? OrarendiOraLezarasDateTime { get; set; }
|
||||
|
||||
public DateTime OraErvenyessegMinDate { get; set; }
|
||||
|
||||
public DateTime OraErvenyessegMaxDate { get; set; }
|
||||
|
||||
public DateTime OraErvenyessegVegzosMaxDate { get; set; }
|
||||
|
||||
public string WorksheetName { get; set; }
|
||||
|
||||
public Dictionary<int, string> ExcelHeaderList { get; set; }
|
||||
}
|
||||
}
|
340
Kreta.BusinessLogic/HelperClasses/ImportCo/OratervImportCo.cs
Normal file
340
Kreta.BusinessLogic/HelperClasses/ImportCo/OratervImportCo.cs
Normal file
|
@ -0,0 +1,340 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class OratervImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<OratervImportItemCo> MainImportItemList { get; set; } = new List<OratervImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<OratervImportItemCo> NemImportalhatoItemList { get; set; } = new List<OratervImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TantervCO> TantervCOList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TantargyItemCo> TantargyCOList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<OratervCO> OratervCOList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<OratervTantargyCO> OratervTantargyCOList { get; set; }
|
||||
|
||||
[JsonProperty("T_TANTARGY_OSSZES")]
|
||||
public List<TantargyImportJsonItemCo> TantargyImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_ORATERV_OSSZES")]
|
||||
public List<OratervImportJsonItemCo> OratervImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_ORATERVTARGY_OSSZES")]
|
||||
public List<OratervTargyImportJsonItemCo> OratervTantargyImportJsonItemList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (OratervImportItemCo 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 (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportOratervResource.ImportHeaderNameOratervNeve,
|
||||
ImportExportOratervResource.ImportHeaderNameTantargyNeve
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
|
||||
foreach (var importItemCo in MainImportItemList)
|
||||
{
|
||||
//NOTE: Ilyen nevű óraterv már létezik az adatbázisban másik tantervben
|
||||
var oratervCo = OratervCOList.SingleOrDefault(x => x.Nev == importItemCo.OratervNeve && x.TantervNev != importItemCo.TantervNeve);
|
||||
if (oratervCo != default)
|
||||
{
|
||||
var validationResult = new ValidationResult(string.Format(ImportExportOratervResource.HibaIlyenNevuOratervMarLetezikARendszerbenATanevben, oratervCo.TantervNev, oratervCo.Nev));
|
||||
if (validationResultDictionary.ContainsKey(importItemCo.LineNumber))
|
||||
{
|
||||
validationResultDictionary[importItemCo.LineNumber].Add(validationResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(importItemCo.LineNumber, new List<ValidationResult> { validationResult });
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ilyen nevű óraterv már létezik az importban másik tantervben
|
||||
var otherImportItemCo = MainImportItemList.FirstOrDefault(x => x.OratervNeve == importItemCo.OratervNeve && x.TantervNeve != importItemCo.TantervNeve);
|
||||
if (otherImportItemCo != default)
|
||||
{
|
||||
var validationResult = new ValidationResult(string.Format(ImportExportOratervResource.HibaIlyenNevuOratervMarLetezikAzImportbanATanevben, otherImportItemCo.TantervNeve, otherImportItemCo.OratervNeve));
|
||||
if (validationResultDictionary.ContainsKey(importItemCo.LineNumber))
|
||||
{
|
||||
validationResultDictionary[importItemCo.LineNumber].Add(validationResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(importItemCo.LineNumber, new List<ValidationResult> { validationResult });
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ilyen nevű óraterv már létezik az adatbázisban másik évfolyamnál
|
||||
oratervCo = OratervCOList.SingleOrDefault(x => x.Nev == importItemCo.OratervNeve && x.TantervNev == importItemCo.TantervNeve && x.Evfolyam != importItemCo.EvfolyamId);
|
||||
if (oratervCo != default)
|
||||
{
|
||||
var validationResult = new ValidationResult(string.Format(ImportExportOratervResource.HibaIlyenNevuOratervMarLetezikARendszerbenMasikEvfolyamnal, oratervCo.EvfolyamNev, oratervCo.Nev));
|
||||
if (validationResultDictionary.ContainsKey(importItemCo.LineNumber))
|
||||
{
|
||||
validationResultDictionary[importItemCo.LineNumber].Add(validationResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(importItemCo.LineNumber, new List<ValidationResult> { validationResult });
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ilyen nevű óraterv már létezik az importban másik évfolyamnál
|
||||
otherImportItemCo = MainImportItemList.FirstOrDefault(x => x.OratervNeve == importItemCo.OratervNeve && x.TantervNeve == importItemCo.TantervNeve && x.EvfolyamId != importItemCo.EvfolyamId);
|
||||
if (otherImportItemCo != default)
|
||||
{
|
||||
var validationResult = new ValidationResult(string.Format(ImportExportOratervResource.HibaIlyenNevuOratervMarLetezikAzImportbanMasikEvfolyamnal, otherImportItemCo.TantervNeve, otherImportItemCo.OratervNeve));
|
||||
if (validationResultDictionary.ContainsKey(importItemCo.LineNumber))
|
||||
{
|
||||
validationResultDictionary[importItemCo.LineNumber].Add(validationResult);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(importItemCo.LineNumber, new List<ValidationResult> { validationResult });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class OratervImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private OratervImportItemCo() { }
|
||||
|
||||
public OratervImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Technikai paraméter(ek) a reflection-ös exporthoz.
|
||||
/// </summary>
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportOratervResource.ImportHeaderNameTantervNeve), typeof(ImportExportOratervResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameTantervNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string TantervNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportOratervResource.ImportHeaderNameOratervNeve), typeof(ImportExportOratervResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameOratervNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string OratervNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportOratervResource.ImportHeaderNameEvfolyamNeve), typeof(ImportExportOratervResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameEvfolyamNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string EvfolyamNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportOratervResource.ImportHeaderNameTantargyNeve), typeof(ImportExportOratervResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameTantargyNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
[MaxLength(150, ErrorMessageResourceName = nameof(TantargyResource.ATantargyNeveMaximum150KarakterLehet), ErrorMessageResourceType = typeof(TantargyResource))]
|
||||
public string TantargyNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportOratervResource.ImportHeaderNameEvesOraszam), typeof(ImportExportOratervResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameEvesOraszam), ResourceType = typeof(ImportExportOratervResource))]
|
||||
[DisplayFormat(DataFormatString = Constants.DataFormats.EvesOraszam)]
|
||||
[RegularExpression(Constants.RegularExpressions.EvesOraszam, ErrorMessageResourceName = nameof(ImportExportOratervResource.HibaAzEvesOraszamFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ImportExportOratervResource))]
|
||||
public string EvesOraszamImportData { get; set; }
|
||||
|
||||
public string TantervNeve => GetStringValue(TantervNeveImportData);
|
||||
|
||||
public string OratervNeve => GetStringValue(OratervNeveImportData);
|
||||
|
||||
public string TantargyNeve => GetStringValue(TantargyNeveImportData);
|
||||
|
||||
public string EvfolyamNeve => GetStringValue(EvfolyamNeveImportData);
|
||||
|
||||
public double? EvesOraszam => GetDoubleValue(EvesOraszamImportData);
|
||||
|
||||
public int? TantervId { get; set; }
|
||||
|
||||
public int? TantargyId { get; set; }
|
||||
|
||||
public int? EvfolyamId => ((int)GeneratedAdatszotarTipusEnum.EvfolyamTipus).GetItemIdByTypeAndName(EvfolyamNeve, _tanevId);
|
||||
|
||||
public int? OratervId { get; set; }
|
||||
|
||||
public int? OratervTantargyId { get; set; }
|
||||
|
||||
public int OperationTantargy { get; set; }
|
||||
|
||||
public int OperationOraterv { get; set; }
|
||||
|
||||
public string CompareHashTantargy { get; set; }
|
||||
|
||||
public string CompareHashOraterv { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//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(TantervNeveImportData))
|
||||
{
|
||||
if (!TantervId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportOratervResource.HibaJelenlegARendszerbenNemSzerepelIlyenNevuTanterv);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(TantargyNeveImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!TantargyId.IsEntityId())
|
||||
{
|
||||
//yield return new ValidationResult(ImportExportOratervResource.HibaJelenlegARendszerbenNemSzerepelIlyenNevuTantargy);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(EvfolyamNeveImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!EvfolyamId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportOratervResource.HibaJelenlegARendszerbenNemSzerepelIlyenNevuEvfolyam);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class OratervImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public OratervImportJsonItemCo(OratervImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.OratervId;
|
||||
TantervNeve = importItemCo.TantervNeve;
|
||||
OratervNeve = importItemCo.OratervNeve;
|
||||
EvfolyamNeve = importItemCo.EvfolyamNeve;
|
||||
EvfolyamId = importItemCo.EvfolyamId;
|
||||
TantervId = importItemCo.TantervId;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationOraterv;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameTantervNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string TantervNeve { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameEvfolyamNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string EvfolyamNeve { get; set; }
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameOratervNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string OratervNeve { get; set; }
|
||||
|
||||
[JsonProperty("C_EVFOLYAM")]
|
||||
public int? EvfolyamId { get; set; }
|
||||
|
||||
[JsonProperty("C_TANTERVID")]
|
||||
public int? TantervId { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
public class OratervTargyImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public OratervTargyImportJsonItemCo(OratervImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.OratervTantargyId;
|
||||
OratervNeve = importItemCo.OratervNeve;
|
||||
TantargyNeve = importItemCo.TantargyNeve;
|
||||
OratervId = importItemCo.OratervId;
|
||||
TantargyId = importItemCo.TantargyId;
|
||||
|
||||
EvesOraszam = importItemCo.EvesOraszam ?? 0;
|
||||
|
||||
TantervNeve = importItemCo.TantervNeve;
|
||||
EvfolyamNeve = importItemCo.EvfolyamNeve;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
[JsonProperty("OratervNev")]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameOratervNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string OratervNeve { get; set; }
|
||||
|
||||
[JsonProperty("TantargyNev")]
|
||||
[Display(Name = nameof(ImportExportOratervResource.ImportHeaderNameTantargyNeve), ResourceType = typeof(ImportExportOratervResource))]
|
||||
public string TantargyNeve { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string EvfolyamNeve { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TantervNeve { get; set; }
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_TANTARGYID")]
|
||||
public int? TantargyId { get; set; }
|
||||
|
||||
[JsonProperty("C_ORATERVID")]
|
||||
public int? OratervId { get; set; }
|
||||
|
||||
[JsonProperty("C_EVESORASZAM")]
|
||||
public double EvesOraszam { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
181
Kreta.BusinessLogic/HelperClasses/ImportCo/TanmenetImportCo.cs
Normal file
181
Kreta.BusinessLogic/HelperClasses/ImportCo/TanmenetImportCo.cs
Normal file
|
@ -0,0 +1,181 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TanmenetImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TanmenetImportItemCo> MainImportItemList { get; set; } = new List<TanmenetImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanmenetImportItemCo> NemImportalhatoItemList { get; set; } = new List<TanmenetImportItemCo>();
|
||||
|
||||
[JsonProperty("T_TANMENET_OSSZES")]
|
||||
public List<TanmenetImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public TantargyfelosztasItemCo Tantargyfelosztas { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (TanmenetImportItemCo 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 (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportTanmenetResource.ImportHeaderNameOraszam
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class TanmenetImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Technikai paraméter(ek) a reflection-ös exporthoz.
|
||||
/// </summary>
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportTanmenetResource.ImportHeaderNameOraszam), typeof(ImportExportTanmenetResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(4, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanmenetResource.ImportHeaderNameOraszam), ResourceType = typeof(ImportExportTanmenetResource))]
|
||||
public string OraszamImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportTanmenetResource.ImportHeaderNameTema), typeof(ImportExportTanmenetResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(1000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanmenetResource.ImportHeaderNameTema), ResourceType = typeof(ImportExportTanmenetResource))]
|
||||
public string TemaImportData { get; set; }
|
||||
|
||||
public int? OraSorszam => GetIntValue(OraszamImportData);
|
||||
|
||||
public string Tema => GetStringValue(TemaImportData);
|
||||
|
||||
public TanmenetItemCo Tanmenet { get; set; }
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(OraszamImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!OraSorszam.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportTanmenetResource.ImportHeaderNameOraszam, OraszamImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (OraSorszam < 0 || OraSorszam > 720)
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.AzOraSzamaCsakEgy0Es720KozottiEgeszSzamLehet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class TanmenetImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TanmenetImportJsonItemCo(TanmenetImportItemCo importItemCo, TantargyfelosztasItemCo tantargyfelosztasItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Now = DateTime.Now;
|
||||
|
||||
if (importItemCo.Tanmenet != null)
|
||||
{
|
||||
BejegyzesIdeje = importItemCo.Tanmenet.BejegyzesIdeje;
|
||||
BejegyzesIdejeString = importItemCo.Tanmenet.BejegyzesIdejeString;
|
||||
}
|
||||
else
|
||||
{
|
||||
BejegyzesIdeje = Now;
|
||||
BejegyzesIdejeString = Now.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
}
|
||||
|
||||
TantargyId = tantargyfelosztasItemCo.TantargyId;
|
||||
OsztalyCsoportId = tantargyfelosztasItemCo.OsztalyCsoportId;
|
||||
TanarId = tantargyfelosztasItemCo.TanarId;
|
||||
|
||||
Tema = importItemCo.Tema;
|
||||
//NOTE: Az OraSorszam.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van óraszáma!
|
||||
OraSorszam = importItemCo.OraSorszam.Value;
|
||||
Nev = $"{OraSorszam}. {Tema}";
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime BejegyzesIdeje { get; set; }
|
||||
|
||||
[JsonProperty("C_BEJEGYZESIDEJE")]
|
||||
public string BejegyzesIdejeString { get; set; }
|
||||
|
||||
[JsonProperty("C_ORASZAM")]
|
||||
public int OraSorszam { get; set; }
|
||||
|
||||
[JsonProperty("C_TANTARGYID")]
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
[JsonProperty("C_OSZTALYCSOPORTID")]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[JsonProperty("C_FELTOLTOID")]
|
||||
public int TanarId { get; set; }
|
||||
|
||||
[JsonProperty("C_TEMA")]
|
||||
public string Tema { get; set; }
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_MEGJEGYZES")]
|
||||
public string Megjegyzes => null;
|
||||
|
||||
[JsonProperty("C_ROVIDNEV")]
|
||||
public string RovidNev => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,293 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.Core;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums.ImportExport;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TantargyfelosztasImportCo : BaseTantargyfelosztasImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TantargyfelosztasImportItemCo> MainImportItemList { get; set; } = new List<TantargyfelosztasImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TantargyfelosztasImportItemCo> NemImportalhatoItemList { get; set; } = new List<TantargyfelosztasImportItemCo>();
|
||||
|
||||
[JsonProperty("T_FOGLALKOZAS_OSSZES")]
|
||||
public List<TantargyfelosztasImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public int TantargyfelosztasImportTipus { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate(FeladatEllatasiHelyCO feladatellatasiHelyCo)
|
||||
{
|
||||
Dictionary<int, List<ValidationResult>> validationResultDictionary = Validate(GetBaseImportItemCoList());
|
||||
|
||||
if (TantargyfelosztasImportTipus == (int)TantargyfelosztasImportTipusEnum.FeladatfelosztasImport)
|
||||
{
|
||||
string csoportNevPrefix = $"{feladatellatasiHelyCo.MukodesiHelyNev} - {feladatellatasiHelyCo.OktatasiNevelesiFeladatNev} - ";
|
||||
foreach (TantargyfelosztasImportItemCo importItem in MainImportItemList)
|
||||
{
|
||||
var validationResultList = new List<ValidationResult>();
|
||||
if (!string.IsNullOrWhiteSpace(importItem.CsoportNev))
|
||||
{
|
||||
var csoportItem = CsoportCoList.SingleOrDefault(x => x.Nev == importItem.CsoportNev);
|
||||
if (csoportItem != null)
|
||||
{
|
||||
var csoportNevWithoutPrefix = importItem.CsoportNev.Substring(csoportNevPrefix.Length);
|
||||
if (csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasSzakertoiBizottsagiTevekenyseg && csoportItem.TipusId != (int)CsoportTipusEnum.szakertoi_bizottsagi_tevekenyseg ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasNevelesiTanacsadas && csoportItem.TipusId != (int)CsoportTipusEnum.nevelesi_tanacsadas ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasKonduktivPedagogiaiEllatas && csoportItem.TipusId != (int)CsoportTipusEnum.konduktiv_pedagogiai_ellatas ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasIskolapszichologiaiOvodapszichologiaiEllatas && csoportItem.TipusId != (int)CsoportTipusEnum.iskolapszichologiai_ovodapszichologiai_ellatas ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasLogopediaiEllatas && csoportItem.TipusId != (int)CsoportTipusEnum.logopediai_ellatas ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasGyogytestneveles && csoportItem.TipusId != (int)CsoportTipusEnum.gyogytestneveles ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasGyogypedagogiaiTanacsadas && csoportItem.TipusId != (int)CsoportTipusEnum.gyogypedagogiai_tanacsadas_korai_fejlesztes_es_gondozas ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasKiemeltenTehetsegesGyermekekTanulokGondozasa && csoportItem.TipusId != (int)CsoportTipusEnum.kiemelten_tehetseges_gyermekek_tanulok_gondozasa ||
|
||||
csoportNevWithoutPrefix == ImportExportTantargyfelosztasResource.ImportHeaderNameFeladatfelosztasTovabbtanulasiPalyavalasztasiTanacsadas && csoportItem.TipusId != (int)CsoportTipusEnum.tovabbtanulasi_palyavalasztasi_tanacsadas)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportTantargyfelosztasResource.Az0CsoportMarLetezikAzAdatbazisbanDeATipusaNem1, csoportItem.Nev, csoportNevWithoutPrefix)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
if (validationResultDictionary.ContainsKey(importItem.LineNumber))
|
||||
{
|
||||
validationResultDictionary[importItem.LineNumber].AddRange(validationResultList);
|
||||
}
|
||||
else
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return validationResultDictionary;
|
||||
}
|
||||
|
||||
public List<BaseTantargyfelosztasImportItemCo> GetBaseImportItemCoList()
|
||||
{
|
||||
var result = MainImportItemList.ConvertAll(new Converter<TantargyfelosztasImportItemCo, BaseTantargyfelosztasImportItemCo>(x => x));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public class TantargyfelosztasImportItemCo : BaseTantargyfelosztasImportItemCo, IValidatableObject
|
||||
{
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameOraszam), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string OraszamImportData { get; set; }
|
||||
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameTulora), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string TuloraImportData { get; set; }
|
||||
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameTtfOraszamKorrekcio), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string TtfOraszamKorrekcioImportData { get; set; }
|
||||
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameNemzetisegiOra), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string NemzetisegiOraImportData { get; set; }
|
||||
|
||||
[MaxLength(5, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTantargyfelosztasResource.ImportHeaderNameMegbizasiOraszam), ResourceType = typeof(ImportExportTantargyfelosztasResource))]
|
||||
public string MegbizasiOraszamImportData { get; set; }
|
||||
|
||||
public double? Oraszam => GetDoubleValue(OraszamImportData);
|
||||
|
||||
public double? Tuloraszam => GetDoubleValue(TuloraImportData, 0);
|
||||
|
||||
public bool? IsOsszevontOra => GetBooleanValue(TtfOraszamKorrekcioImportData, false);
|
||||
|
||||
public bool? IsNemzetisegiOra => GetBooleanValue(NemzetisegiOraImportData, false);
|
||||
|
||||
public double? MegbizasiOraszam => GetDoubleValue(MegbizasiOraszamImportData, 0);
|
||||
|
||||
public double OraszamSum { get; set; }
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(OsztalyNev) && string.IsNullOrWhiteSpace(CsoportNev))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.OsztalyOrCsoportRequired);
|
||||
}
|
||||
else if (OsztalyNev == CsoportNev)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.OsztalyCsoportNemLehetEgyenlo);
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(OraszamImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!Oraszam.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.NemMegfeleloAzOraszamFormatuma);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Oraszam < 0)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.AzOraszamNemLehetKisebbMint0);
|
||||
}
|
||||
else if (Oraszam > Constants.General.TantargyfelosztasImportMaxOraszam)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportTantargyfelosztasResource.AzOraszamNemLehetNagyobbMint0, Constants.General.TantargyfelosztasImportMaxOraszam.ToString()));
|
||||
}
|
||||
|
||||
if (Tuloraszam.HasValue)
|
||||
{
|
||||
if (Tuloraszam < 0)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.AzTuloraNemLehetKisebbMint0);
|
||||
}
|
||||
else if (Tuloraszam > Oraszam)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportTantargyfelosztasResource.AzTuloraNemLehetNagyobbMintAzOraszam0, Oraszam.ToString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(TuloraImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!Tuloraszam.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.NemMegfeleloATuloraFormatuma);
|
||||
}
|
||||
}
|
||||
|
||||
if (!IsOsszevontOra.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.NemMegfeleloATtfOraszamKorrekcioFormatuma);
|
||||
}
|
||||
|
||||
if (!IsNemzetisegiOra.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.NemMegfeleloANemzetisegiOraFormatuma);
|
||||
}
|
||||
|
||||
if (!MegbizasiOraszam.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.NemMegfeleloMegbizasiSzerzodesselEllatottOraFormatuma);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MegbizasiOraszam < 0)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTantargyfelosztasResource.AMegbizasiOraszamNemLehetKisebbMint0);
|
||||
}
|
||||
else if (MegbizasiOraszam > Constants.General.TantargyfelosztasImportMaxOraszam)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportTantargyfelosztasResource.AMegbizasiOraszamNemLehetNagyobbMint, Constants.General.TantargyfelosztasImportMaxOraszam.ToString()));
|
||||
}
|
||||
}
|
||||
|
||||
if (!CsoportTipusId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportTantargyfelosztasResource.NemLetezikAzAlabbiCsoportTipusAdatszotar, CsoportNev));
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class TantargyfelosztasImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TantargyfelosztasImportJsonItemCo(BaseTantargyfelosztasImportItemCo importItemCo, string compareHash, double oraszam, double tuloraszam, bool isOsszevontOra, bool isNemzetisegiOra, double megbizasiOraszam, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
OsztalyCsoportNev = importItemCo.OsztalyCsoportNev;
|
||||
TantargyNev = importItemCo.TantargyNev;
|
||||
Nev = importItemCo.TantargyfelosztasNev;
|
||||
Oraszam = oraszam;
|
||||
TipusId = importItemCo.IsCsoport ? (int)FoglalkozasTipusEnum.tanora_osztalybontasos_ : (int)FoglalkozasTipusEnum.tanora;
|
||||
Tuloraszam = tuloraszam;
|
||||
IsOsszevontOra = isOsszevontOra;
|
||||
IsNemzetisegiOra = isNemzetisegiOra;
|
||||
MegbizasiOraszam = megbizasiOraszam;
|
||||
|
||||
//NOTE: Az TanarId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanár id-ja!
|
||||
TanarId = importItemCo.TanarId.Value;
|
||||
TanarNev = importItemCo.TanarNev;
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
|
||||
CompareHash = compareHash;
|
||||
}
|
||||
|
||||
[JsonIgnore]
|
||||
public string CompareHash { get; set; }
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("OsztalyCsoportNev")]
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
[JsonProperty("TantargyNev")]
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanarNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TANARID")]
|
||||
public int TanarId { get; set; }
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_ORASZAM")]
|
||||
public double Oraszam { get; set; }
|
||||
|
||||
[JsonProperty("C_FOGLALKOZASTIPUSA")]
|
||||
public int TipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_TULORASZAM")]
|
||||
public double Tuloraszam { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsOsszevontOra { get; set; }
|
||||
|
||||
[JsonProperty("C_ISOSSZEVONTORA")]
|
||||
public string IsOsszevontOraString => SDAConvert.ToSDABoolean(IsOsszevontOra);
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsNemzetisegiOra { get; set; }
|
||||
|
||||
[JsonProperty("C_ISNEMZETISEGI")]
|
||||
public string IsNemzetisegiOraString => SDAConvert.ToSDABoolean(IsNemzetisegiOra);
|
||||
|
||||
[JsonProperty("C_MEGBIZASIORASZAM")]
|
||||
public double MegbizasiOraszam { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ERTEKELESKELL")]
|
||||
public string IsErtekelesKell => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_MULASZTASKELL")]
|
||||
public string IsMulasztasKell => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_TANARFELVEHETI")]
|
||||
public string IsTanarFelveheti => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,594 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses.OsztalyCsoportbaSorolas;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums.ImportExport;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TanuloBesorolasImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TanuloBesorolasImportItemCo> MainImportItemList { get; set; } = new List<TanuloBesorolasImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloBesorolasImportItemCo> NemImportalhatoItemList { get; set; } = new List<TanuloBesorolasImportItemCo>();
|
||||
|
||||
[JsonProperty("T_TANULOCSOPORT_OSSZES")]
|
||||
public List<TanuloBesorolasImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_TANULOTANUGYIADATOK_OSSZES")]
|
||||
public List<TanuloBesorolasTanuloTanugyiAdatokImportJsonItemCo> TanuloBesorolasTanuloTanugyiAdatokImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<OsztalyCsoportItemCo> OsztalyCsoportCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloCsoportItemCo> TanuloCsoportCoList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool? IsJuttatasUpdate { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsIntezmenySzakkepzoJuttatas { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime BesorolasDatum { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? KisorolasDatum { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime TanevUtolsoNapja { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public Dictionary<OktNevelesiKategoriaEnum, int> JogviszonyLimits { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (TanuloBesorolasImportItemCo 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 (importItem.TanuloId.IsEntityId() && importItem.OsztalyCsoportId.IsEntityId())
|
||||
{
|
||||
var besorolasVege = KisorolasDatum ?? TanevUtolsoNapja;
|
||||
var osztalyok = OsztalyCsoportCoList.Where(o => o.IsOsztaly);
|
||||
|
||||
var currentOsztalyCsoport = OsztalyCsoportCoList.Single(x => x.Id == importItem.OsztalyCsoportId.Value);
|
||||
var currentOsztalyFeladatKategoriaId = currentOsztalyCsoport.FeladatKategoriaId;
|
||||
var isAmi = currentOsztalyFeladatKategoriaId == (int)OktNevelesiKategoriaEnum.AlapfokuMuveszetoktatas;
|
||||
|
||||
var tanulohozTartozoExcelBesorolasok = MainImportItemList.Where(x => x.TanuloId.IsEntityId() && x.OsztalyCsoportId.IsEntityId() && x.TanuloId == importItem.TanuloId.Value && osztalyok.Any(o => (o.Id == x.OsztalyCsoportId) && (o.FeladatKategoriaId == currentOsztalyFeladatKategoriaId)));
|
||||
var tanulohozTartozoElozoExcelBesorolasok = tanulohozTartozoExcelBesorolasok.Where(x => x.LineNumber < importItem.LineNumber);
|
||||
var tanulohozTartozoElozoExcelBesorolasokByOsztaly = tanulohozTartozoElozoExcelBesorolasok.Where(x => osztalyok.Any(o => o.Id == x.OsztalyCsoportId));
|
||||
|
||||
var tanulohozTartozoTanuloCsoportListFromDb = TanuloCsoportCoList.Where(x => x.OsztalyCsoportFeladatKategoriaId == currentOsztalyFeladatKategoriaId && x.FelhasznaloId == importItem.TanuloId).ToList();
|
||||
var tanulohozTartozoDbBesorolasokByOsztaly = tanulohozTartozoTanuloCsoportListFromDb.Where(x => osztalyok.Any(o => o.Id == x.OsztalyCsoportId));
|
||||
|
||||
if (currentOsztalyCsoport.IsOsztaly)
|
||||
{
|
||||
var jogviszonyLimit = JogviszonyLimits[(OktNevelesiKategoriaEnum)currentOsztalyFeladatKategoriaId];
|
||||
|
||||
//NOTE: Kikeressük, melyik dátumnál van a legnagyobb átfedés a besorolások között, és ha több mint a limit, hiba.
|
||||
var besorolasok = CreateBesorolasDateRangeList(besorolasVege, tanulohozTartozoDbBesorolasokByOsztaly, tanulohozTartozoElozoExcelBesorolasokByOsztaly, withCurrentOne: true);
|
||||
var overlapResult = BesorolasDateRangeUtil.CalculateMaxOverlap(BesorolasDatum, besorolasVege, besorolasok);
|
||||
if (overlapResult.OverlapCount > jogviszonyLimit)
|
||||
{
|
||||
var errorMsg = string.Empty;
|
||||
if (isAmi)
|
||||
{
|
||||
errorMsg = string.Format(ImportExportTanuloBesorolasResource.TanuloBeVanSorolvaMegengedettSzamuOsztalyba, importItem.TanuloNeveImportData, overlapResult.OverlapBeginDate.ToShortDateString());
|
||||
}
|
||||
else
|
||||
{
|
||||
var osztalyNev = osztalyok.First(o => o.Id == overlapResult.MaxOverlapOsztalyId.Value).Nev;
|
||||
errorMsg = string.Format(ImportExportTanuloBesorolasResource.TanuloBeVanSorolvaOsztalyba, importItem.TanuloNeveImportData, overlapResult.OverlapBeginDate.ToShortDateString(), osztalyNev);
|
||||
}
|
||||
validationResultList.Add(new ValidationResult(errorMsg));
|
||||
}
|
||||
//NOTE: Ha a limit nagyobb mint 1, meg kell vizsgálni, hogy nem akarják-e ugyan abba az osztályba besorolni.
|
||||
else if (jogviszonyLimit > 1)
|
||||
{
|
||||
var duplicateBesorolas = tanulohozTartozoDbBesorolasokByOsztaly.FirstOrDefault(x => x.OsztalyCsoportId == importItem.OsztalyCsoportId.Value && BesorolasDatum < (x.KilepesDatum ?? TanevUtolsoNapja) && x.BelepesDatum < besorolasVege);
|
||||
if (duplicateBesorolas != null)
|
||||
{
|
||||
var errorMsg = string.Format(ImportExportTanuloBesorolasResource.TanuloBeVanSorolvaOsztalyba, importItem.TanuloNeveImportData, duplicateBesorolas.BelepesDatum.ToShortDateString(), duplicateBesorolas.OsztalyCsoportNev);
|
||||
validationResultList.Add(new ValidationResult(errorMsg));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (currentOsztalyCsoport.IsAutoEgyeniCsoport)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(ImportExportTanuloBesorolasResource.ADiakotNemLehetBesorolniAutomatikusanLetrehozottEgyeniCsoportba));
|
||||
}
|
||||
else
|
||||
{
|
||||
var tanulohozTartozoElozoExcelBesorolasokByCsoport = tanulohozTartozoElozoExcelBesorolasok.Where(x => !osztalyok.Any(o => o.Id == x.OsztalyCsoportId));
|
||||
var tanulohozTartozoDbBesorolasokByCsoport = tanulohozTartozoTanuloCsoportListFromDb.Where(x => !osztalyok.Any(o => o.Id == x.OsztalyCsoportId));
|
||||
|
||||
var marTagjaACsoportnakBesorolasok = CreateBesorolasDateRangeList(besorolasVege, tanulohozTartozoDbBesorolasokByCsoport, tanulohozTartozoElozoExcelBesorolasokByCsoport,
|
||||
withCurrentOne: false, examinedOsztalyCsoportId: currentOsztalyCsoport.Id);
|
||||
var marTagjaACsoportnakOverlapResult = BesorolasDateRangeUtil.CalculateMaxOverlap(BesorolasDatum, besorolasVege, marTagjaACsoportnakBesorolasok);
|
||||
if (marTagjaACsoportnakOverlapResult.OverlapCount > 0)
|
||||
{
|
||||
var errorMsg = string.Format(ImportExportTanuloBesorolasResource.TanuloMarTagjaACsoportnak, importItem.TanuloNeveImportData, marTagjaACsoportnakOverlapResult.OverlapBeginDate.ToShortDateString());
|
||||
validationResultList.Add(new ValidationResult(errorMsg));
|
||||
}
|
||||
|
||||
if (currentOsztalyCsoport.OsztalyBontasId.IsEntityId())
|
||||
{
|
||||
var besorolasok = CreateBesorolasDateRangeList(besorolasVege, tanulohozTartozoDbBesorolasokByOsztaly, tanulohozTartozoElozoExcelBesorolasokByOsztaly,
|
||||
withCurrentOne: false, examinedOsztalyCsoportId: currentOsztalyCsoport.OsztalyBontasId);
|
||||
var overlapResult = BesorolasDateRangeUtil.CalculateMinOverlap(BesorolasDatum, besorolasVege, besorolasok);
|
||||
if (overlapResult.OverlapCount == 0)
|
||||
{
|
||||
var osztalyNev = osztalyok.First(o => o.Id == currentOsztalyCsoport.OsztalyBontasId.Value).Nev;
|
||||
var errorMsg = string.Format(ImportExportTanuloBesorolasResource.TanuloNemTagjaAzOsztalynak, importItem.TanuloNeveImportData, overlapResult.OverlapBeginDate.ToShortDateString(), osztalyNev);
|
||||
validationResultList.Add(new ValidationResult(errorMsg));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var nemTagjaEgyetlenOsztalynakSemBesorolasok = CreateBesorolasDateRangeList(besorolasVege, tanulohozTartozoDbBesorolasokByOsztaly, tanulohozTartozoElozoExcelBesorolasokByOsztaly,
|
||||
withCurrentOne: false);
|
||||
var nemTagjaEgyetlenOsztalynakSemOverlapResult = BesorolasDateRangeUtil.CalculateMinOverlap(BesorolasDatum, besorolasVege, nemTagjaEgyetlenOsztalynakSemBesorolasok);
|
||||
if (nemTagjaEgyetlenOsztalynakSemOverlapResult.OverlapCount == 0)
|
||||
{
|
||||
var errorMsg = string.Format(ImportExportTanuloBesorolasResource.TanuloNemTagjaEgyetlenOsztalynakSem, importItem.TanuloNeveImportData, nemTagjaEgyetlenOsztalynakSemOverlapResult.OverlapBeginDate.ToShortDateString());
|
||||
validationResultList.Add(new ValidationResult(errorMsg));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportTanuloBesorolasResource.ImportHeaderNameTanuloNeve,
|
||||
ImportExportTanuloBesorolasResource.ImportHeaderNameTanuloOktatasiAzonosito,
|
||||
ImportExportTanuloBesorolasResource.ImportHeaderNameOsztalyCsoport
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
|
||||
private IEnumerable<BesorolasDateRange> CreateBesorolasDateRangeList(DateTime besorolasVege, IEnumerable<TanuloCsoportItemCo> tanulohozTartozoDbBesorolasok, IEnumerable<TanuloBesorolasImportItemCo> tanulohozTartozoElozoExcelBesorolasok,
|
||||
bool withCurrentOne, int? examinedOsztalyCsoportId = null)
|
||||
{
|
||||
//NOTE: aktuális besorolás
|
||||
var besorolasok = new List<BesorolasDateRange>();
|
||||
if (withCurrentOne)
|
||||
{
|
||||
besorolasok.Add(new BesorolasDateRange
|
||||
{
|
||||
Begin = BesorolasDatum,
|
||||
End = besorolasVege,
|
||||
});
|
||||
}
|
||||
|
||||
//NOTE: db-be lévők
|
||||
besorolasok.AddRange(tanulohozTartozoDbBesorolasok.Select(x => new BesorolasDateRange
|
||||
{
|
||||
Begin = x.BelepesDatum,
|
||||
End = x.KilepesDatum ?? TanevUtolsoNapja,
|
||||
OsztalyCsoportId = x.OsztalyCsoportId
|
||||
}));
|
||||
|
||||
//NOTE: az excelbe ez előtt szerepeltek
|
||||
besorolasok.AddRange(tanulohozTartozoElozoExcelBesorolasok.Select(x => new BesorolasDateRange
|
||||
{
|
||||
Begin = BesorolasDatum,
|
||||
End = besorolasVege,
|
||||
OsztalyCsoportId = x.OsztalyCsoportId.Value
|
||||
}));
|
||||
|
||||
if (examinedOsztalyCsoportId.HasValue)
|
||||
{
|
||||
besorolasok = besorolasok.Where(x => !x.OsztalyCsoportId.HasValue || x.OsztalyCsoportId == examinedOsztalyCsoportId).ToList();
|
||||
}
|
||||
|
||||
return besorolasok;
|
||||
}
|
||||
}
|
||||
|
||||
public class TanuloBesorolasImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
public TanuloBesorolasImportItemCo(bool isSzakkepzoIntezmeny) : base()
|
||||
{
|
||||
IsSzakkepzoIntezmeny = isSzakkepzoIntezmeny;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Technikai paraméter(ek) a reflection-ös exporthoz.
|
||||
/// </summary>
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportTanuloBesorolasResource.ImportHeaderNameTanuloNeve), typeof(ImportExportTanuloBesorolasResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloBesorolasResource.ImportHeaderNameTanuloNeve), ResourceType = typeof(ImportExportTanuloBesorolasResource))]
|
||||
public string TanuloNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportTanuloBesorolasResource.ImportHeaderNameTanuloOktatasiAzonosito), typeof(ImportExportTanuloBesorolasResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[KretaRegularExpression(Constants.RegularExpressions.OktatasiAzonositoTanulo, ErrorMessageResourceName = nameof(ErrorResource.OktatasiAzonositoFormatumaNemMegfeleloTanulo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloBesorolasResource.ImportHeaderNameTanuloOktatasiAzonosito), ResourceType = typeof(ImportExportTanuloBesorolasResource))]
|
||||
public string TanuloOktatasiAzonositoImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportTanuloBesorolasResource.ImportHeaderNameOsztalyCsoport), typeof(ImportExportTanuloBesorolasResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloBesorolasResource.ImportHeaderNameOsztalyCsoport), ResourceType = typeof(ImportExportTanuloBesorolasResource))]
|
||||
public string OsztalyCsoportImportData { get; set; }
|
||||
|
||||
public string TanuloElotag => GetElotagFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string TanuloVezeteknev => GetVezeteknevFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string TanuloKeresztnev => GetKeresztnevekFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string TanuloOktatasiAzonosito => GetStringValue(TanuloOktatasiAzonositoImportData);
|
||||
|
||||
public string OsztalyCsoportNev => GetStringValue(OsztalyCsoportImportData);
|
||||
|
||||
public TanuloItemCo Tanulo { get; set; }
|
||||
|
||||
public int? TanuloId => Tanulo?.Id;
|
||||
|
||||
public List<int> TanuloOsztalyCsoportIdList { get; set; }
|
||||
|
||||
public OsztalyCsoportItemCo OsztalyCsoport { get; set; }
|
||||
|
||||
public int? OsztalyCsoportId { get; set; }
|
||||
|
||||
public bool? IsOsztaly { get; set; }
|
||||
|
||||
private bool IsSzakkepzoIntezmeny { get; }
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha van megadva tanuló neve és oktatási azonosítója az import data-ban, meg kell vizsgálni, hogy létezik-e az adatbázisban.
|
||||
if (!string.IsNullOrWhiteSpace(TanuloNeveImportData) && !string.IsNullOrWhiteSpace(TanuloOktatasiAzonositoImportData))
|
||||
{
|
||||
//NOTE: Ha a TanuloId null, akkor a tanuló nem létezik az adatbázisban!
|
||||
if (!TanuloId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloBesorolasResource.ATanuloNemSzerepelAzAdatbazisban);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy legyen vezetéknév és keresztnév is
|
||||
if (!string.IsNullOrWhiteSpace(TanuloNeveImportData) && (string.IsNullOrWhiteSpace(TanuloVezeteknev) || string.IsNullOrWhiteSpace(TanuloKeresztnev)))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportGondviseloResource.ATanuloNeveFormatumaNemMegfelelo);
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva osztály vagy csoport neve az import data-ban, meg kell vizsgálni, hogy létezik-e az adatbázisban.
|
||||
if (!string.IsNullOrWhiteSpace(OsztalyCsoportImportData))
|
||||
{
|
||||
//NOTE: Ha az OsztalyCsoportId null, akkor az osztály vagy csoport nem létezik az adatbázisban!
|
||||
if (!OsztalyCsoportId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloBesorolasResource.AzOsztalyVagyCsoportNemSzerepelAzAdatbazisban);
|
||||
}
|
||||
}
|
||||
|
||||
if (IsSzakkepzoIntezmeny && !string.IsNullOrWhiteSpace(TanuloOktatasiAzonositoImportData) && !Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(TanuloOktatasiAzonositoImportData))
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.AMegadottOktatasiAzonositoHibas);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class TanuloBesorolasImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TanuloBesorolasImportJsonItemCo(TanuloBesorolasImportItemCo importItemCo, DateTime besorolasDatum, DateTime? kisorolasDatum, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Now = DateTime.Now;
|
||||
BejegyzesIdopontja = Now.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
TanuloElotag = importItemCo.TanuloElotag;
|
||||
TanuloVezeteknev = importItemCo.TanuloVezeteknev;
|
||||
TanuloKeresztnev = importItemCo.TanuloKeresztnev;
|
||||
TanuloOktatasiAzonosito = importItemCo.TanuloOktatasiAzonosito;
|
||||
OsztalyCsoportNev = importItemCo.OsztalyCsoportNev;
|
||||
//NOTE: Az IsOsztaly.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van osztály-/csoportja!
|
||||
IsOsztaly = importItemCo.IsOsztaly.Value;
|
||||
|
||||
BelepesDatum = besorolasDatum;
|
||||
BelepesDatumString = BelepesDatum.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
KilepesDatum = kisorolasDatum;
|
||||
KilepesDatumString = KilepesDatum?.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
//NOTE: Az TanuloId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van tanulója!
|
||||
TanuloId = importItemCo.TanuloId.Value;
|
||||
//NOTE: Az OsztalyCsoportId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van osztály-/csoportja!
|
||||
OsztalyCsoportId = importItemCo.OsztalyCsoportId.Value;
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanuloElotag { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanuloVezeteknev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanuloKeresztnev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanuloOktatasiAzonosito { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool IsOsztaly { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime BelepesDatum { get; set; }
|
||||
|
||||
[JsonProperty("C_BELEPESDATUM")]
|
||||
public string BelepesDatumString { get; set; }
|
||||
|
||||
[JsonProperty("C_TANULOID")]
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
[JsonProperty("C_OSZTALYCSOPORTID")]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[JsonProperty("C_BEJEGYZESIDOPONTJA")]
|
||||
public string BejegyzesIdopontja { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? KilepesDatum { get; set; }
|
||||
|
||||
[JsonProperty("C_KILEPESDATUM")]
|
||||
public string KilepesDatumString { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ZARADEK")]
|
||||
public string Zaradek => null;
|
||||
|
||||
[JsonProperty("C_BEFOGADOINTEZMENY")]
|
||||
public string BefogadoIntezmeny => null;
|
||||
|
||||
[JsonProperty("C_MEGJEGYZES")]
|
||||
public string Megjegyzes => null;
|
||||
|
||||
[JsonProperty("C_VEGZARADEK")]
|
||||
public string Vegzaradek => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class TanuloBesorolasTanuloTanugyiAdatokImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TanuloBesorolasTanuloTanugyiAdatokImportJsonItemCo(int osztalyCsoportId, TanuloItemCo tanuloCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
OsztalyCsoportId = osztalyCsoportId;
|
||||
TanuloId = tanuloCo.Id;
|
||||
|
||||
BeirasiNaploSorszam = tanuloCo.BeirasiNaploSorszam;
|
||||
IsBejaro = SDAConvert.ToSDABoolean(tanuloCo.IsBejaro);
|
||||
IsDiaksportkoros = SDAConvert.ToSDABoolean(tanuloCo.IsDiaksportkoros);
|
||||
IsEgyebOrszagosDonto = SDAConvert.ToSDABoolean(tanuloCo.IsEgyebDonto);
|
||||
IsEgyuttmukodeses = SDAConvert.ToSDABoolean(tanuloCo.IsEgyuttmukodeses);
|
||||
ElozoIntezmeny = tanuloCo.ElozoIntezmeny;
|
||||
IsEvismetlo = SDAConvert.ToSDABoolean(tanuloCo.IsEvismetlo);
|
||||
IsIskolaiKeretekKozott = SDAConvert.ToSDABoolean(tanuloCo.IsIskolaiKeretekKozott);
|
||||
IsJogviszonyatSzunetelteto = SDAConvert.ToSDABoolean(tanuloCo.IsJogviszonyatSzunetelteto);
|
||||
JogviszonyVarhatoBefejezese = tanuloCo.JogviszonyVarhatoBefejezese;
|
||||
JogviszonyVarhatoBefejezeseString = tanuloCo.JogviszonyVarhatoBefejezeseString;
|
||||
IsMagantanulo = SDAConvert.ToSDABoolean(tanuloCo.IsMagantanulo);
|
||||
MagantanulosaganakOkaId = tanuloCo.MagantanulosaganakOkaId;
|
||||
MagantanulosagKezdete = tanuloCo.MagantanulosagKezdete;
|
||||
MagantanulosagKezdeteString = tanuloCo.MagantanulosagKezdeteString;
|
||||
NyilvantartasKezdete = tanuloCo.NyilvantartasKezdete;
|
||||
NyilvantartasKezdeteString = tanuloCo.NyilvantartasKezdeteString;
|
||||
IsOsztv = SDAConvert.ToSDABoolean(tanuloCo.IsOsztv);
|
||||
IsPolgariSzerzodeses = SDAConvert.ToSDABoolean(tanuloCo.IsPolgariSzerzodeses);
|
||||
IsSzakmaiGyakorlaton = SDAConvert.ToSDABoolean(tanuloCo.IsSzakmaiGyakorlaton);
|
||||
IsSzetvAgazat = SDAConvert.ToSDABoolean(tanuloCo.IsSzetvAgazat);
|
||||
Szintvizsga = tanuloCo.Szintvizsga;
|
||||
IsSzktv = SDAConvert.ToSDABoolean(tanuloCo.IsSzktv);
|
||||
IsTandijatfizeto = SDAConvert.ToSDABoolean(tanuloCo.IsTandijatfizeto);
|
||||
IsTankotelezett = SDAConvert.ToSDABoolean(tanuloCo.IsTankotelezett);
|
||||
TankotelezettsegVege = tanuloCo.TankotelezettsegVege;
|
||||
TankotelezettsegVegeString = tanuloCo.TankotelezettsegVegeString;
|
||||
TanuloEvfolyamTipusId = tanuloCo.TanuloEvfolyamTipusId;
|
||||
IsTanuloSzerzodeses = SDAConvert.ToSDABoolean(tanuloCo.IsTanuloSzerzodeses);
|
||||
IsTechnikusiEvfolyam = SDAConvert.ToSDABoolean(tanuloCo.IsTechnikusiEvfolyam);
|
||||
IsTeritesiDijatFizeto = SDAConvert.ToSDABoolean(tanuloCo.IsTeritesiDijatFizeto);
|
||||
IsVendeg = SDAConvert.ToSDABoolean(tanuloCo.IsVendeg);
|
||||
Naplosorszam = tanuloCo.Naplosorszam;
|
||||
Torzslapszam = tanuloCo.Torzslapszam;
|
||||
TantervId = tanuloCo.TantervId;
|
||||
FelvetelTaneveId = tanuloCo.FelvetelTaneveId;
|
||||
|
||||
Operation = (int)ImportItemOperationEnum.Insert;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("OsztalyCsoportId")]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[JsonProperty("TanuloId")]
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
[JsonProperty("C_BEIRASINAPLOSORSZAM")]
|
||||
public string BeirasiNaploSorszam { get; set; }
|
||||
|
||||
[JsonProperty("C_BEJARO")]
|
||||
public string IsBejaro { get; set; }
|
||||
|
||||
[JsonProperty("C_DIAKSPORTKOROS")]
|
||||
public string IsDiaksportkoros { get; set; }
|
||||
|
||||
[JsonProperty("C_EGYEBORSZAGOSDONTO")]
|
||||
public string IsEgyebOrszagosDonto { get; set; }
|
||||
|
||||
[JsonProperty("C_EGYUTTMUKODESES")]
|
||||
public string IsEgyuttmukodeses { get; set; }
|
||||
|
||||
[JsonProperty("C_ELOZOINTEZMENY")]
|
||||
public string ElozoIntezmeny { get; set; }
|
||||
|
||||
[JsonProperty("C_EVISMETLO")]
|
||||
public string IsEvismetlo { get; set; }
|
||||
|
||||
[JsonProperty("C_ISKOLAIKERETEKKOZOTT")]
|
||||
public string IsIskolaiKeretekKozott { get; set; }
|
||||
|
||||
[JsonProperty("C_JOGVISZONYATSZUNETELTETO")]
|
||||
public string IsJogviszonyatSzunetelteto { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? JogviszonyVarhatoBefejezese { get; set; }
|
||||
|
||||
[JsonProperty("C_JOGVISZONYVARHATOBEFEJEZESE")]
|
||||
public string JogviszonyVarhatoBefejezeseString { get; set; }
|
||||
|
||||
[JsonProperty("C_MAGANTANULO")]
|
||||
public string IsMagantanulo { get; set; }
|
||||
|
||||
[JsonProperty("C_MAGANTANULOSAGANAKOKAID")]
|
||||
public int? MagantanulosaganakOkaId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? MagantanulosagKezdete { get; set; }
|
||||
|
||||
[JsonProperty("C_MAGANTANULOSAGKEZDETE")]
|
||||
public string MagantanulosagKezdeteString { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime NyilvantartasKezdete { get; set; }
|
||||
|
||||
[JsonProperty("C_NYILVANTARTASKEZDETE")]
|
||||
public string NyilvantartasKezdeteString { get; set; }
|
||||
|
||||
[JsonProperty("C_OSZTV")]
|
||||
public string IsOsztv { get; set; }
|
||||
|
||||
[JsonProperty("C_POLGARISZERZODESES")]
|
||||
public string IsPolgariSzerzodeses { get; set; }
|
||||
|
||||
[JsonProperty("C_SZAKMAIGYAKORLATON")]
|
||||
public string IsSzakmaiGyakorlaton { get; set; }
|
||||
|
||||
[JsonProperty("C_SZETVAGAZAT")]
|
||||
public string IsSzetvAgazat { get; set; }
|
||||
|
||||
[JsonProperty("C_SZINTVIZSGA")]
|
||||
public double? Szintvizsga { get; set; }
|
||||
|
||||
[JsonProperty("C_SZKTV")]
|
||||
public string IsSzktv { get; set; }
|
||||
|
||||
[JsonProperty("C_TANDIJATFIZETO")]
|
||||
public string IsTandijatfizeto { get; set; }
|
||||
|
||||
[JsonProperty("C_TANKOTELEZETT")]
|
||||
public string IsTankotelezett { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime? TankotelezettsegVege { get; set; }
|
||||
|
||||
[JsonProperty("C_TANKOTELEZETTSEGVEGE")]
|
||||
public string TankotelezettsegVegeString { get; set; }
|
||||
|
||||
[JsonProperty("C_TANULOEVFOLYAMTIPUSID")]
|
||||
public int? TanuloEvfolyamTipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_TANULOSZERZODESES")]
|
||||
public string IsTanuloSzerzodeses { get; set; }
|
||||
|
||||
[JsonProperty("C_TECHNIKUSIEVFOLYAM")]
|
||||
public string IsTechnikusiEvfolyam { get; set; }
|
||||
|
||||
[JsonProperty("C_TERITESIDIJATFIZETO")]
|
||||
public string IsTeritesiDijatFizeto { get; set; }
|
||||
|
||||
[JsonProperty("C_VENDEG")]
|
||||
public string IsVendeg { get; set; }
|
||||
|
||||
[JsonProperty("C_NAPLOSORSZAM")]
|
||||
public int? Naplosorszam { get; set; }
|
||||
|
||||
[JsonProperty("C_TORZSLAPSZAM")]
|
||||
public string Torzslapszam { get; set; }
|
||||
|
||||
[JsonProperty("C_TANTERVID")]
|
||||
public int TantervId { get; set; }
|
||||
|
||||
[JsonProperty("C_FELVETELTANEVEID")]
|
||||
public int FelvetelTaneveId { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_HOZOTTIGAZOLATLANHIANYZAS")]
|
||||
public int HozottIgazolatlanHianyzas => 0;
|
||||
|
||||
[JsonProperty("C_HOZOTTIGAZOLATLANKESESPERCBE")]
|
||||
public int HozottIgazolatlanKesesPercbe => 0;
|
||||
|
||||
[JsonProperty("C_HOZOTTIGAZOLTHIANYZAS")]
|
||||
public int HozottIgazoltHianyzas => 0;
|
||||
|
||||
[JsonProperty("C_HOZOTTIGAZOLTKESESPERCBEN")]
|
||||
public int HozottIgazoltKesesPercben => 0;
|
||||
|
||||
[JsonProperty("C_ISESL16EVESUTANBELEPETT")]
|
||||
public string IsEsl16EvesUtanBelepett => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_BIZONYITVANYSZAMA")]
|
||||
public string BizonyitvanySzama => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,186 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TanuloErtekelesMondatbankImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TanuloErtekelesMondatbankImportItemCo> MainImportItemList { get; set; } = new List<TanuloErtekelesMondatbankImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloErtekelesMondatbankImportItemCo> NemImportalhatoItemList { get; set; } = new List<TanuloErtekelesMondatbankImportItemCo>();
|
||||
|
||||
[JsonProperty("T_ERTEKELESMONDATBANK_OSSZES")]
|
||||
public List<TanuloErtekelesMondatbankImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloErtekelesMondatbankItemCo> TanuloErtekelesMondatbankCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (TanuloErtekelesMondatbankImportItemCo 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 (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameRovidNev,
|
||||
ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameSzoveg,
|
||||
ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameTanuloErtekelesTipus,
|
||||
ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameEvfolyamTipus,
|
||||
ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameTantargy
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class TanuloErtekelesMondatbankImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
[MaxLength(3, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameRovidNev), ResourceType = typeof(ImportExportTanuloErtekelesMondatbankResource))]
|
||||
public string RovidNevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(4000, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameSzoveg), ResourceType = typeof(ImportExportTanuloErtekelesMondatbankResource))]
|
||||
public string SzovegImportData { get; set; }
|
||||
|
||||
[MaxLength(250, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameTanuloErtekelesTipus), ResourceType = typeof(ImportExportTanuloErtekelesMondatbankResource))]
|
||||
public string TanuloErtekelesTipusImportData { get; set; }
|
||||
|
||||
[MaxLength(250, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameEvfolyamTipus), ResourceType = typeof(ImportExportTanuloErtekelesMondatbankResource))]
|
||||
public string EvfolyamTipusImportData { get; set; }
|
||||
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloErtekelesMondatbankResource.ImportHeaderNameTantargy), ResourceType = typeof(ImportExportTanuloErtekelesMondatbankResource))]
|
||||
public string TantargyImportData { get; set; }
|
||||
|
||||
public string RovidNev => GetStringValue(RovidNevImportData);
|
||||
|
||||
public string Szoveg => GetStringValue(SzovegImportData);
|
||||
|
||||
public string TanuloErtekelesTipusNev => GetStringValue(TanuloErtekelesTipusImportData, CommonResource.Mind);
|
||||
|
||||
public string EvfolyamTipusNev => GetStringValue(EvfolyamTipusImportData, CommonResource.Mind);
|
||||
|
||||
public string TantargyNev => GetStringValue(TantargyImportData, CommonResource.Mind);
|
||||
|
||||
public int? TanuloErtekelesTipusId { get; set; }
|
||||
|
||||
public int? EvfolyamTipusId { get; set; }
|
||||
|
||||
public int? TantargyId { get; set; }
|
||||
|
||||
public int TipusId { get; set; }
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha a TanuloErtekelesTipusId null és nem "Mind" az tanuló értékelés típus neve, akkor rossz az adat!
|
||||
if (!TanuloErtekelesTipusId.IsEntityId() &&
|
||||
TanuloErtekelesTipusNev != CommonResource.Mind)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloErtekelesMondatbankResource.ATanuloErtekelesTipusNemSzerepelAzAdatbazisban);
|
||||
}
|
||||
|
||||
//NOTE: Ha a EvfolyamTipusId null és nem "Mind" az évfolyam típus neve, akkor rossz az adat!
|
||||
if (!EvfolyamTipusId.IsEntityId() &&
|
||||
EvfolyamTipusNev != CommonResource.Mind)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloErtekelesMondatbankResource.AzEvfolyamTipusNemSzerepelAzAdatbazisban);
|
||||
}
|
||||
|
||||
//NOTE: Ha a TantargyId null és nem "Mind", "Magatartás", "Szorgalom" a tantárgy neve, akkor rossz az adat!
|
||||
if (!TantargyId.IsEntityId() &&
|
||||
TantargyNev != CommonResource.Mind &&
|
||||
TantargyNev != TanuloErtekelesResource.Magatartas &&
|
||||
TantargyNev != TanuloErtekelesResource.Szorgalom)
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloErtekelesMondatbankResource.ATantargyNemSzerepelAzAdatbazisban);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class TanuloErtekelesMondatbankImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TanuloErtekelesMondatbankImportJsonItemCo(TanuloErtekelesMondatbankImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
RovidNev = importItemCo.RovidNev;
|
||||
Szoveg = importItemCo.Szoveg;
|
||||
TanuloErtekelesTipusNev = importItemCo.TanuloErtekelesTipusNev;
|
||||
TanuloErtekelesTipusId = importItemCo.TanuloErtekelesTipusId;
|
||||
EvfolyamTipusNev = importItemCo.EvfolyamTipusNev;
|
||||
EvfolyamTipusId = importItemCo.EvfolyamTipusId;
|
||||
TantargyNev = importItemCo.TantargyNev;
|
||||
TantargyId = importItemCo.TantargyId;
|
||||
TipusId = importItemCo.TipusId;
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_ROVIDNEV")]
|
||||
public string RovidNev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZOVEG")]
|
||||
public string Szoveg { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TanuloErtekelesTipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ERTEKELESTIPUSA")]
|
||||
public int? TanuloErtekelesTipusId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string EvfolyamTipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_EVFOLYAMTIPUSA")]
|
||||
public int? EvfolyamTipusId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
[JsonProperty("C_TANTARGYID")]
|
||||
public int? TantargyId { get; set; }
|
||||
|
||||
[JsonProperty("C_TIPUSID")]
|
||||
public int TipusId { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,866 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.DataAccessManual.Util;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TanuloKifirImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TanuloKifirImportItemCo> MainImportItemList { get; set; } = new List<TanuloKifirImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloKifirImportItemCo> NemImportalhatoItemList { get; set; } = new List<TanuloKifirImportItemCo>();
|
||||
|
||||
[JsonProperty("T_CIM_OSSZES")]
|
||||
public List<CimKifirImportJsonItemCo> CimKifirImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_EMAIL_OSSZES")]
|
||||
public List<EmailKifirImportJsonItemCo> EmailKifirImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_TANULO_OSSZES")]
|
||||
public List<TanuloKifirImportJsonItemCo> TanuloKifirImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_FELHASZNALO_OSSZES")]
|
||||
public List<FelhasznaloKifirImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloItemCo> TanuloCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (TanuloKifirImportItemCo 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);
|
||||
}
|
||||
|
||||
var oktatasiAzonositoComparableString = importItem.OktatasiAzonosito?.ToComparableString();
|
||||
if (!string.IsNullOrWhiteSpace(oktatasiAzonositoComparableString))
|
||||
{
|
||||
//NOTE: Levalidáljuk, hogy az oktatási azonosítóval szerepel-e tanuló az adatbázisban, de nem a tanuló maga az!
|
||||
if (TanuloCoList.Any(x =>
|
||||
x.FelhasznaloOktatasiAzonositoComparableString == oktatasiAzonositoComparableString && (
|
||||
x.FelhasznaloVezeteknevComparableString + x.FelhasznaloKeresztnevComparableString != importItem.Vezeteknev?.ToComparableString() + importItem.Keresztnev?.ToComparableString() ||
|
||||
x.FelhasznaloSzuletesiHelyComparableString != importItem.SzuletesiHely?.ToComparableString() ||
|
||||
x.FelhasznaloSzuletesiIdo != importItem.SzuletesiIdo)))
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportTanuloKifirResource.AMegadottOktatasiAzonositovalSzerepelTanuloAzAdatbazisban, importItem.OktatasiAzonositoImportData)));
|
||||
}
|
||||
|
||||
//NOTE: Levalidáljuk, hogy ugyanazzal az oktatási azonosítóval csak egyszer szerepeljen tanuló a dokumnetumban!
|
||||
if (MainImportItemList.Count(x => x.OktatasiAzonosito?.ToComparableString() == oktatasiAzonositoComparableString) > 1)
|
||||
{
|
||||
validationResultList.Add(new ValidationResult(string.Format(ImportExportCommonResource.OktatasiAzonositoExistsMoreTimesInDocument, importItem.OktatasiAzonosito)));
|
||||
}
|
||||
}
|
||||
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportTanuloKifirResource.ImportHeaderNameNev,
|
||||
ImportExportTanuloKifirResource.ImportHeaderNameOktatasiAzonosito,
|
||||
ImportExportTanuloKifirResource.ImportHeaderNameSzuletesiHely,
|
||||
ImportExportTanuloKifirResource.ImportHeaderNameSzuletesiDatum
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class TanuloKifirImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private TanuloKifirImportItemCo() { }
|
||||
|
||||
public TanuloKifirImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameNev), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string NevImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[KretaRegularExpression(Constants.RegularExpressions.OktatasiAzonositoTanulo, ErrorMessageResourceName = nameof(ErrorResource.OktatasiAzonositoFormatumaNemMegfeleloTanulo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameOktatasiAzonosito), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string OktatasiAzonositoImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(50, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameSzuletesiHely), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string SzuletesiHelyImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameSzuletesiDatum), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string SzuletesiDatumImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(64, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAnyjaNeve), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AnyjaNeveImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAllandoLakcimIranyitoszam), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AllandoLakcimIranyitoszamImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(50, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAllandoLakcimTelepules), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AllandoLakcimTelepulesImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAllandoLakcimKozterulet), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AllandoLakcimKozteruletImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(20, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameErtesitesiCimIranyitoszam), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string ErtesitesiCimIranyitoszamImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(50, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameErtesitesiCimTelepules), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string ErtesitesiCimTelepulesImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameErtesitesiCimKozterulet), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string ErtesitesiCimKozteruletImportData { get; set; }
|
||||
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(64, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAllampolgarsag), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AllampolgarsagImportData { get; set; }
|
||||
|
||||
[MaxLength(200, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[EmailAddressExtended(true, true, ErrorMessageResourceName = nameof(ErrorResource.NemMegfeleloFormatumuAzEmailCim), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameEmailCim), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string EmailCimImportData { get; set; }
|
||||
|
||||
[MaxLength(238, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaNeve), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaNeveImportData { get; set; }
|
||||
|
||||
[MaxLength(6, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaOmKodja), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaOmKodjaImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameFelveteltNyertTanulmanyiKeruletNeve), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string FelveteltNyertTanulmanyiKeruletNeveImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameFelveteltNyertTanulmanyiKeruletKodszama), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string FelveteltNyertTanulmanyiKeruletKodszamaImportData { get; set; }
|
||||
|
||||
#region Unused Import Data
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameKilencedikEvfolyamnalAlacsonyabb), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string KilencedikEvfolyamnalAlacsonyabbImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameErtesitesiCimNev), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string ErtesitesiCimNevImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaIranyitoszam), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaIranyitoszamImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaCim), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaCimImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaTelepules), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaTelepulesImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaTelefonszam), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaTelefonszamImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameAltalanosIskolaEmailCim), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string AltalanosIskolaEmailCimImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameFelveteltNyertTanulmanyiKeruletSzovege), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string FelveteltNyertTanulmanyiKeruletSzovegeImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameNemNyertFelveteltElutasitas), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string NemNyertFelveteltElutasitasImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameNemNyertFelveteltBetelt), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string NemNyertFelveteltBeteltImportData { get; set; }
|
||||
|
||||
[Display(Name = nameof(ImportExportTanuloKifirResource.ImportHeaderNameNemNyertFelveteltElobbreNertFelvetelt), ResourceType = typeof(ImportExportTanuloKifirResource))]
|
||||
public string NemNyertFelveteltElobbreNertFelveteltImportData { get; set; }
|
||||
#endregion
|
||||
|
||||
public string Elotag => GetElotagFromTeljesNev(NevImportData);
|
||||
|
||||
public string Vezeteknev => GetVezeteknevFromTeljesNev(NevImportData);
|
||||
|
||||
public string Keresztnev => GetKeresztnevekFromTeljesNev(NevImportData);
|
||||
|
||||
public string OktatasiAzonosito => GetStringValue(OktatasiAzonositoImportData);
|
||||
|
||||
public string SzuletesiHely => GetStringValue(SzuletesiHelyImportData);
|
||||
|
||||
public DateTime? SzuletesiIdo => GetDateTimeValue(SzuletesiDatumImportData);
|
||||
|
||||
public string SzuletesiIdoString => GetDateTimeString(SzuletesiIdo);
|
||||
|
||||
public string AnyjaNeve => GetStringValue(AnyjaNeveImportData);
|
||||
|
||||
public string AnyjaNeveElotag => GetElotagFromTeljesNev(AnyjaNeveImportData);
|
||||
|
||||
public string AnyjaVezeteknev => GetVezeteknevFromTeljesNev(AnyjaNeveImportData);
|
||||
|
||||
public string AnyjaKeresztnev => GetKeresztnevekFromTeljesNev(AnyjaNeveImportData);
|
||||
|
||||
public string AllandoLakcimTelepules => GetStringValue(AllandoLakcimTelepulesImportData);
|
||||
|
||||
public string AllandoLakcimIranyitoszam => GetStringValue(AllandoLakcimIranyitoszamImportData);
|
||||
|
||||
public TanuloKifirSplittedCim AllandoLakcimSplittedCim { get; set; }
|
||||
|
||||
public string AllandoLakcimKozterulet => AllandoLakcimSplittedCim?.KozteruletNev;
|
||||
|
||||
public int? AllandoLakcimKozteruletJellegeId => AllandoLakcimSplittedCim?.KozteruletJellegeId;
|
||||
|
||||
public string AllandoLakcimHazszam => AllandoLakcimSplittedCim?.Hazszam;
|
||||
|
||||
public string IdeiglenesLakcimTelepules => GetStringValue(ErtesitesiCimTelepulesImportData);
|
||||
|
||||
public string IdeiglenesLakcimIranyitoszam => GetStringValue(ErtesitesiCimIranyitoszamImportData);
|
||||
|
||||
public TanuloKifirSplittedCim IdeiglenesLakcimSplittedCim { get; set; }
|
||||
|
||||
public string IdeiglenesLakcimKozterulet => IdeiglenesLakcimSplittedCim?.KozteruletNev;
|
||||
|
||||
public int? IdeiglenesLakcimKozteruletJellegeId => IdeiglenesLakcimSplittedCim?.KozteruletJellegeId;
|
||||
|
||||
public string IdeiglenesLakcimHazszam => IdeiglenesLakcimSplittedCim?.Hazszam;
|
||||
|
||||
public int AllampolgarsagId => ((int)GeneratedAdatszotarTipusEnum.Allampolgarsag).GetItemIdByTypeAndName(AllampolgarsagImportData, _tanevId) ?? (int)AllampolgarsagEnum.na;
|
||||
|
||||
public string EmailCim => GetStringValue(EmailCimImportData);
|
||||
|
||||
public string ElozoIntezmeny => GetElozoIntezmeny(AltalanosIskolaNeveImportData, AltalanosIskolaOmKodjaImportData);
|
||||
|
||||
public int OperationAllandoLakcim { get; set; }
|
||||
|
||||
public int OperationIdeiglenesLakcim { get; set; }
|
||||
|
||||
public int OperationEmail { get; set; }
|
||||
|
||||
public string CompareHashAllandoLakcim { get; set; }
|
||||
|
||||
public string CompareHashIdeiglenesLakcim { get; set; }
|
||||
|
||||
public string CompareHashEmail { get; set; }
|
||||
|
||||
public int? AllandoLakcimId { get; set; }
|
||||
|
||||
public int? IdeiglenesLakcimId { get; set; }
|
||||
|
||||
public int? EmailId { get; set; }
|
||||
|
||||
public static TanuloKifirSplittedCim GetTanuloKifirSplittedCim(IDictionary<int, string> kozteruletJellegIdNevDictionary, string cimImportData)
|
||||
{
|
||||
//NOTE: Azért rendezzük hossz szerint visszafelé, hogy a hosszabb értékeket hamarabb megtalálja. Pl.: "alsó rakpart" -> "rakpart"
|
||||
foreach (var kozteruletJellegIdNevItem in kozteruletJellegIdNevDictionary.OrderByDescending(x => x.Value.Length))
|
||||
{
|
||||
var kozteruletJellegNev = kozteruletJellegIdNevItem.Value.ToComparableString();
|
||||
var kozteruletJellegStartIndex = cimImportData.ToComparableString().IndexOf($" {kozteruletJellegNev} ", StringComparison.Ordinal);
|
||||
if (kozteruletJellegStartIndex.IsNotNullAndPositive())
|
||||
{
|
||||
//NOTE: A + 2 a közterület jelleg előtt és utáni szóköz miatt kell.
|
||||
var kozteruletJellegEndIndex = kozteruletJellegStartIndex + kozteruletJellegNev.Length + 2;
|
||||
var result = new TanuloKifirSplittedCim
|
||||
{
|
||||
KozteruletNev = cimImportData.Substring(0, kozteruletJellegStartIndex),
|
||||
KozteruletJellegeId = kozteruletJellegIdNevItem.Key,
|
||||
Hazszam = cimImportData.Substring(kozteruletJellegEndIndex, cimImportData.Length - kozteruletJellegEndIndex),
|
||||
};
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
var defaultResult = new TanuloKifirSplittedCim
|
||||
{
|
||||
KozteruletJellegeId = (int)KozteruletJellegEnum.na
|
||||
};
|
||||
return defaultResult;
|
||||
}
|
||||
|
||||
public class TanuloKifirSplittedCim
|
||||
{
|
||||
public string KozteruletNev { get; set; }
|
||||
|
||||
public int? KozteruletJellegeId { get; set; }
|
||||
|
||||
public string Hazszam { get; set; }
|
||||
}
|
||||
|
||||
public static string GetElozoIntezmeny(string altalanosIskolaNeveImportData, string altalanosIskolaOmKodjaImportData)
|
||||
{
|
||||
string result = null;
|
||||
if (!string.IsNullOrWhiteSpace(altalanosIskolaNeveImportData))
|
||||
{
|
||||
result = string.IsNullOrWhiteSpace(altalanosIskolaOmKodjaImportData) ?
|
||||
altalanosIskolaNeveImportData :
|
||||
string.Format(ImportExportTanuloKifirResource.IskolaNevOmKod, altalanosIskolaNeveImportData, altalanosIskolaOmKodjaImportData);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(SzuletesiDatumImportData))
|
||||
{
|
||||
//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, ImportExportTanuloKifirResource.ImportHeaderNameSzuletesiDatum.ToLowerInvariant(), SzuletesiDatumImportData));
|
||||
}
|
||||
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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Legalább az egyiknek értékkel kell rendelkeznie.
|
||||
if (string.IsNullOrWhiteSpace(FelveteltNyertTanulmanyiKeruletNeveImportData) && string.IsNullOrWhiteSpace(FelveteltNyertTanulmanyiKeruletKodszamaImportData))
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportTanuloKifirResource.NemImportalhatoMertNemNyertFelveteltAzIntezmenybe, NevImportData));
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy legyen vezetéknév és keresztnév is
|
||||
if (!string.IsNullOrWhiteSpace(NevImportData) && (string.IsNullOrWhiteSpace(Vezeteknev) || string.IsNullOrWhiteSpace(Keresztnev)))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloKifirResource.ATanuloNeveFormatumaNemMegfelelo);
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy legyen vezetéknév és keresztnév is
|
||||
if (!string.IsNullOrWhiteSpace(AnyjaNeveImportData) && (string.IsNullOrWhiteSpace(GetVezeteknevFromTeljesNev(AnyjaNeve)) || string.IsNullOrWhiteSpace(GetKeresztnevekFromTeljesNev(AnyjaNeve))))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanuloKifirResource.AzAnyjaNeveFormatumaNemMegfelelo);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class CimKifirImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public CimKifirImportJsonItemCo(TanuloKifirImportItemCo importItemCo, int tipusId, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Elotag = importItemCo.Elotag;
|
||||
Vezeteknev = importItemCo.Vezeteknev;
|
||||
Keresztnev = importItemCo.Keresztnev;
|
||||
SzuletesiHely = importItemCo.SzuletesiHely;
|
||||
SzuletesiIdo = importItemCo.SzuletesiIdoString;
|
||||
OktatasiAzonosito = importItemCo.OktatasiAzonosito;
|
||||
|
||||
switch (tipusId)
|
||||
{
|
||||
case (int)CimTipusEnum.allando_lakcim:
|
||||
Id = importItemCo.AllandoLakcimId;
|
||||
|
||||
TipusId = (int)CimTipusEnum.allando_lakcim;
|
||||
Iranyitoszam = importItemCo.AllandoLakcimIranyitoszam;
|
||||
Telepules = importItemCo.AllandoLakcimTelepules;
|
||||
Kozterulet = importItemCo.AllandoLakcimKozterulet;
|
||||
KozteruletJellegId = importItemCo.AllandoLakcimKozteruletJellegeId;
|
||||
KozteruletJellegeNev = ((KozteruletJellegEnum)importItemCo.AllandoLakcimKozteruletJellegeId).GetDisplayName(tanevId);
|
||||
Hazszam = importItemCo.AllandoLakcimHazszam;
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(true);
|
||||
|
||||
Operation = importItemCo.OperationAllandoLakcim;
|
||||
break;
|
||||
case (int)CimTipusEnum.ideiglenes_lakcim:
|
||||
Id = importItemCo.IdeiglenesLakcimId;
|
||||
|
||||
TipusId = (int)CimTipusEnum.ideiglenes_lakcim;
|
||||
Iranyitoszam = importItemCo.IdeiglenesLakcimIranyitoszam;
|
||||
Telepules = importItemCo.IdeiglenesLakcimTelepules;
|
||||
Kozterulet = importItemCo.IdeiglenesLakcimKozterulet;
|
||||
KozteruletJellegId = importItemCo.IdeiglenesLakcimKozteruletJellegeId;
|
||||
KozteruletJellegeNev = ((KozteruletJellegEnum)importItemCo.IdeiglenesLakcimKozteruletJellegeId).GetDisplayName(tanevId);
|
||||
Hazszam = importItemCo.IdeiglenesLakcimHazszam;
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(false);
|
||||
|
||||
Operation = importItemCo.OperationIdeiglenesLakcim;
|
||||
break;
|
||||
}
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string Elotag { get; set; }
|
||||
|
||||
[JsonProperty("Vezeteknev")]
|
||||
public string Vezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("Keresztnev")]
|
||||
public string Keresztnev { get; set; }
|
||||
|
||||
[JsonProperty("SzuletesiHely")]
|
||||
public string SzuletesiHely { get; set; }
|
||||
|
||||
[JsonProperty("SzuletesiIdo")]
|
||||
public string SzuletesiIdo { get; set; }
|
||||
|
||||
[JsonProperty("OktatasiAzonosito")]
|
||||
public string OktatasiAzonosito { get; set; }
|
||||
|
||||
[JsonProperty("C_CIMTIPUSA")]
|
||||
public int TipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_IRANYITOSZAM")]
|
||||
public string Iranyitoszam { get; set; }
|
||||
|
||||
[JsonProperty("C_VAROS")]
|
||||
public string Telepules { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULET")]
|
||||
public string Kozterulet { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULETJELLEGE")]
|
||||
public int? KozteruletJellegId { get; set; }
|
||||
|
||||
[JsonProperty("C_KOZTERULETJELLEGENEV")]
|
||||
public string KozteruletJellegeNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
[JsonProperty("C_HAZSZAM")]
|
||||
public string Hazszam { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ORSZAG")]
|
||||
public int OrszagTipusId => (int)OrszagTipusEnum.Magyarorszag;
|
||||
|
||||
[JsonProperty("C_EMELET")]
|
||||
public string Emelet => null;
|
||||
|
||||
[JsonProperty("C_AJTO")]
|
||||
public string Ajto => null;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class EmailKifirImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public EmailKifirImportJsonItemCo(TanuloKifirImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.EmailId;
|
||||
Elotag = importItemCo.Elotag;
|
||||
Vezeteknev = importItemCo.Vezeteknev;
|
||||
Keresztnev = importItemCo.Keresztnev;
|
||||
SzuletesiHely = importItemCo.SzuletesiHely;
|
||||
SzuletesiIdo = importItemCo.SzuletesiIdoString;
|
||||
OktatasiAzonosito = importItemCo.OktatasiAzonosito;
|
||||
|
||||
TipusId = (int)EmailTipusEnum.Magan;
|
||||
EmailCim = importItemCo.EmailCim;
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(true);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationEmail;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string Elotag { get; set; }
|
||||
|
||||
[JsonProperty("Vezeteknev")]
|
||||
public string Vezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("Keresztnev")]
|
||||
public string Keresztnev { get; set; }
|
||||
|
||||
[JsonProperty("SzuletesiHely")]
|
||||
public string SzuletesiHely { get; set; }
|
||||
|
||||
[JsonProperty("SzuletesiIdo")]
|
||||
public string SzuletesiIdo { get; set; }
|
||||
|
||||
[JsonProperty("OktatasiAzonosito")]
|
||||
public string OktatasiAzonosito { get; set; }
|
||||
|
||||
[JsonProperty("C_EMAILTIPUSA")]
|
||||
public int? TipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_EMAILCIM")]
|
||||
public string EmailCim { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ISPUBLIC")]
|
||||
public string IsPublic => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISHIBASANMEGADVA")]
|
||||
public string IsHibasanMegadva => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class TanuloKifirImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TanuloKifirImportJsonItemCo(TanuloKifirImportItemCo importItemCo, int tantervId, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.Id;
|
||||
Elotag = importItemCo.Elotag;
|
||||
Vezeteknev = importItemCo.Vezeteknev;
|
||||
Keresztnev = importItemCo.Keresztnev;
|
||||
SzuletesiHely = importItemCo.SzuletesiHely;
|
||||
SzuletesiIdo = importItemCo.SzuletesiIdoString;
|
||||
OktatasiAzonosito = importItemCo.OktatasiAzonosito;
|
||||
|
||||
TantervId = tantervId;
|
||||
ElozoIntezmeny = importItemCo.ElozoIntezmeny;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public string Elotag { get; set; }
|
||||
|
||||
[JsonProperty("Vezeteknev")]
|
||||
public string Vezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("Keresztnev")]
|
||||
public string Keresztnev { get; set; }
|
||||
|
||||
[JsonProperty("SzuletesiHely")]
|
||||
public string SzuletesiHely { get; set; }
|
||||
|
||||
[JsonProperty("SzuletesiIdo")]
|
||||
public string SzuletesiIdo { get; set; }
|
||||
|
||||
[JsonProperty("OktatasiAzonosito")]
|
||||
public string OktatasiAzonosito { get; set; }
|
||||
|
||||
[JsonProperty("C_TANTERVID")]
|
||||
public int TantervId { get; set; }
|
||||
|
||||
[JsonProperty("C_ELOZOINTEZMENY")]
|
||||
public string ElozoIntezmeny { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ALLAMIGONDOZOTT")]
|
||||
public string IsAllamiGondozott => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_BEILLESZKEDESINEHEZSEG")]
|
||||
public string IsBeilleszkedesiNehezseg => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_BEJARO")]
|
||||
public string IsBejaro => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_EVISMETLO")]
|
||||
public string IsEvismetlo => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_JOGVISZONYATSZUNETELTETO")]
|
||||
public string IsJogviszonyatSzunetelteto => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_MAGANTANULO")]
|
||||
public string IsMagantanulo => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_POLGARISZERZODESES")]
|
||||
public string IsPolgariSzerzodeses => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SZAKMAIGYAKORLATON")]
|
||||
public string IsSzakmaiGyakorlaton => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SZOCIALISTAMOGATAS")]
|
||||
public string IsSzocialisTamogatas => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANDIJATFIZETO")]
|
||||
public string IsTandijatFizeto => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANKOTELEZETT")]
|
||||
public string IsTankotelezett => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANULOSZERZODESES")]
|
||||
public string IsTanuloSzerzodeses => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TERITESIDIJATFIZETO")]
|
||||
public string IsTeritesiDijatFizeto => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TESTNEVELESTIPUSA")]
|
||||
public int TestnevelesTipusId => (int)TestnevelesTipusEnum.normal_testneveles;
|
||||
|
||||
[JsonProperty("C_VENDEG")]
|
||||
public string IsVendeg => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_BTMPROBLEMAS")]
|
||||
public string IsBtmProblemas => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_DIAKSPORTKOROS")]
|
||||
public string IsDiaksportkoros => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_HALMOZOTTANFOGYATEKOS")]
|
||||
public string IsHalmozottanFogyatekos => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_HATRANYOSHELYZETU")]
|
||||
public int HatranyosHelyzetuId => (int)HatranyosHelyzetTipusEnum.nem_hatranyos_helyzetu;
|
||||
|
||||
[JsonProperty("C_KOLLEGIUMIELLATASOS")]
|
||||
public string IsKollegiumiEllatasos => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SAJATOSNEVELESU")]
|
||||
public string IsSajatosNevelesu => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_VESZELYEZTETETT")]
|
||||
public string IsVeszelyeztetett => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_BEILLESZKEDESIPROBLEMAVALKUZ")]
|
||||
public string IsBeilleszkedesiProblemavalKuzd => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_MAGATARTASIPROBLEMAVALKUZD")]
|
||||
public string IsMagatartasiProblemavalKuzd => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANULASIPROBLEMADISZGRAFIA")]
|
||||
public string IsTanulasiProblemaDiszgrafia => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANULASIPROBLEMAVALKUZD")]
|
||||
public string IsTanulasiProblemavalKuzd => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANULASIPROBLEMAVALKUZDDISZK")]
|
||||
public string IsTanulasiProblemavalKuzdDiszkalkulia => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TANULASIPROBLEMAVALKUZDDISZL")]
|
||||
public string IsTanulasiProblemavalKuzdDiszlexia => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_KOZEPFOKUOKTATASBATIZENHATOD")]
|
||||
public string IsKozepfokuOktatasbaTizenhatodikEletevenekBetoltesetKovetoenBelepett => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_MENEDEKJOGGALRENDELKEZO")]
|
||||
public string IsMenedekjoggalRendelkezo => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_EGYEBDONTO")]
|
||||
public string IsEgyebDonto => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_MEGALLAPODASOS")]
|
||||
public string IsMegallapodasos => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_OSZTV")]
|
||||
public string IsOsztv => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SZETVAGAZAT")]
|
||||
public string IsSzetvAgazat => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_SZKTV")]
|
||||
public string IsSzktv => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_TECHNIKUSIEVFOLYAM")]
|
||||
public string IsTechnikusiEvfolyam => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_EGYUTTMUKODESES")]
|
||||
public string IsEgyuttmukodeses => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISKOLAIKERETEKKOZOTT")]
|
||||
public string IsIskolaiKeretekKozott => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISSZAKMAIGYAKORLATHIANY")]
|
||||
public string IsSzakmaiGyakorlatHiany => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISKIFIRIMPORTALT")]
|
||||
public string IsKifirImportalt => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_FELVETELTANEVEID")]
|
||||
public int FelvetelTanevId => TanevId;
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
|
||||
public class FelhasznaloKifirImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public FelhasznaloKifirImportJsonItemCo(TanuloKifirImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.Id;
|
||||
|
||||
//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;
|
||||
SzuletesiIdoString = importItemCo.SzuletesiIdoString;
|
||||
SzuletesiNev = $"{importItemCo.Vezeteknev} {importItemCo.Keresztnev}";
|
||||
SzuletesiHely = importItemCo.SzuletesiHely;
|
||||
AnyjaNeve = importItemCo.AnyjaNeve;
|
||||
AnyjaNeveElotag = importItemCo.AnyjaNeveElotag;
|
||||
AnyjaVezeteknev = importItemCo.AnyjaVezeteknev;
|
||||
AnyjaKeresztnev = importItemCo.AnyjaKeresztnev;
|
||||
|
||||
AllampolgarsagId = importItemCo.AllampolgarsagId;
|
||||
KeresesiNev = CommonUtilsDal.KopaszNev(SzuletesiNev);
|
||||
NyomtatasiNev = string.IsNullOrWhiteSpace(importItemCo.Elotag) ? SzuletesiNev : $"{importItemCo.Elotag} {SzuletesiNev}";
|
||||
Elotag = importItemCo.Elotag;
|
||||
SzuletesiNevElotag = importItemCo.Elotag;
|
||||
Vezeteknev = importItemCo.Vezeteknev;
|
||||
SzuletesiVezeteknev = importItemCo.Vezeteknev;
|
||||
Keresztnev = importItemCo.Keresztnev;
|
||||
SzuletesiKeresztnev = importItemCo.Keresztnev;
|
||||
OktatasiAzonosito = importItemCo.OktatasiAzonosito;
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonIgnore]
|
||||
public DateTime SzuletesiIdo { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIDATUM")]
|
||||
public string SzuletesiIdoString { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESINEV")]
|
||||
public string SzuletesiNev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESINEVELOTAG")]
|
||||
public string SzuletesiNevElotag { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIVEZETEKNEV")]
|
||||
public string SzuletesiVezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIUTONEV")]
|
||||
public string SzuletesiKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_SZULETESIHELY")]
|
||||
public string SzuletesiHely { get; set; }
|
||||
|
||||
[JsonProperty("C_ANYJANEVE")]
|
||||
public string AnyjaNeve { get; set; }
|
||||
|
||||
[JsonProperty("C_ANYJANEVEELOTAG")]
|
||||
public string AnyjaNeveElotag { get; set; }
|
||||
|
||||
[JsonProperty("C_ANYJAVEZETEKNEVE")]
|
||||
public string AnyjaVezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("C_ANYJAUTONEVE")]
|
||||
public string AnyjaKeresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_ALLAMPOLGARSAGA")]
|
||||
public int AllampolgarsagId { get; set; }
|
||||
|
||||
[JsonProperty("C_KERESESINEV")]
|
||||
public string KeresesiNev { get; set; }
|
||||
|
||||
[JsonProperty("C_NYOMTATASINEV")]
|
||||
public string NyomtatasiNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ELOTAG")]
|
||||
public string Elotag { get; set; }
|
||||
|
||||
[JsonProperty("C_VEZETEKNEV")]
|
||||
public string Vezeteknev { get; set; }
|
||||
|
||||
[JsonProperty("C_UTONEV")]
|
||||
public string Keresztnev { get; set; }
|
||||
|
||||
[JsonProperty("C_OKTATASIAZONOSITO")]
|
||||
public string OktatasiAzonosito { get; set; }
|
||||
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_NEME")]
|
||||
public int NemeId => (int)NemEnum.NA;
|
||||
|
||||
[JsonProperty("C_SZULETESIORSZAG")]
|
||||
public int OrszagTipusId => (int)OrszagTipusEnum.Magyarorszag;
|
||||
|
||||
[JsonProperty("C_SZULETESINEVSORREND")]
|
||||
public string IsSzuletesiNevSorrend => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ANYJANEVESORREND")]
|
||||
public string IsAnyjaNeveSorrend => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETTLCID")]
|
||||
public int AlapertelmezettLcid => 1038;
|
||||
|
||||
[JsonProperty("C_LATASSERULTWEBHASZNALATA")]
|
||||
public string IsLatasserultWebHasznalata => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_KELLADSZINKRONIZALAS")]
|
||||
public string IsKellAdSzinkronizalas => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_ANYANYELVE")]
|
||||
public int AnyanyelvId => (int)AnyanyelvEnum.magyar;
|
||||
|
||||
[JsonProperty("C_IGAZOLVANYTIPUSA")]
|
||||
public int IgazolvanyTipusId => (int)IgazolvanyTipusEnum.Szemelyi_igazolvany;
|
||||
|
||||
[JsonProperty("C_NEVSORREND")]
|
||||
public string IsNevSorrend => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_NYILVANTARTASKEZDETE")]
|
||||
public string NyilvatartasKezdeteString => DateTime.Today.ToString(Constants.ToStringPattern.SortableDateTimePattern);
|
||||
|
||||
[JsonProperty("C_BELUGYALTALAZONOSITOTT")]
|
||||
public string IsBelugyAltalAzonositott => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_EGYEDIAZONOSITO")]
|
||||
public string EgyediAzonosito => Guid.Empty.ToString();
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
|
@ -0,0 +1,312 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.HelperClasses.ImportCo;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TanulokElerhetosegiAdataikImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TanulokElerhetosegiAdataikImportItemCo> MainImportItemList { get; set; } = new List<TanulokElerhetosegiAdataikImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanulokElerhetosegiAdataikImportItemCo> NemImportalhatoItemList { get; set; } = new List<TanulokElerhetosegiAdataikImportItemCo>();
|
||||
|
||||
[JsonProperty("T_TELEFON_OSSZES")]
|
||||
public List<TelefonTanuloImportJsonItemCo> TelefonTanuloImportJsonItemList { get; set; }
|
||||
|
||||
[JsonProperty("T_EMAIL_OSSZES")]
|
||||
public List<EmailTanuloImportJsonItemCo> EmailTanuloImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TanuloItemCo> TanuloCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
foreach (TanulokElerhetosegiAdataikImportItemCo importItem in MainImportItemList)
|
||||
{
|
||||
var validationResultList = new List<ValidationResult>();
|
||||
var blValidator = new BlValidator(importItem);
|
||||
if (!blValidator.IsValid)
|
||||
{
|
||||
validationResultList.AddRange(blValidator.ErrorList);
|
||||
}
|
||||
if (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloNeve,
|
||||
ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloOktatasiAzonosito
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class TanulokElerhetosegiAdataikImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private TanulokElerhetosegiAdataikImportItemCo() { }
|
||||
|
||||
public TanulokElerhetosegiAdataikImportItemCo(int tanevId, bool isSzakkepzoIntezmeny) : base()
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
IsSzakkepzoIntezmeny = isSzakkepzoIntezmeny;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloNeve), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(200, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloNeve), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string TanuloNeveImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloOktatasiAzonosito), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(11, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[KretaRegularExpression(Constants.RegularExpressions.OktatasiAzonositoTanulo, ErrorMessageResourceName = nameof(ErrorResource.OktatasiAzonositoFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloOktatasiAzonosito), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string TanuloOktatasiAzonositoImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloTelefonszam), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[PhoneExtended(ErrorMessageResourceName = nameof(ErrorResource.ATelefonszamFormatumaNemMegfelelo), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloTelefonszam), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string TanuloTelefonszamImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTelefonszamAlapertelmezett), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTelefonszamAlapertelmezett), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string TelefonszamAlapertelmezettImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 04, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTelefonszamTipusa), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTelefonszamTipusa), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string TelefonszamTipusaImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 05, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloEmailCim), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[EmailAddressExtended(true, true, ErrorMessageResourceName = nameof(ErrorResource.NemMegfeleloFormatumuAzEmailCim), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameTanuloEmailCim), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string TanuloEmailCimImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 06, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameEmailAlapertelmezett), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameEmailAlapertelmezett), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string EmailAlapertelmezettImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 07, nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameEmailTipus), typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
[Display(Name = nameof(ImportExportTanulokElerhetosegiAdataikResource.ImportHeaderNameEmailTipus), ResourceType = typeof(ImportExportTanulokElerhetosegiAdataikResource))]
|
||||
public string EmailTipusImportData { get; set; }
|
||||
|
||||
public string FelhasznaloElotag => GetElotagFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string FelhasznaloVezeteknev => GetVezeteknevFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string FelhasznaloKeresztnev => GetKeresztnevekFromTeljesNev(TanuloNeveImportData);
|
||||
|
||||
public string FelhasznaloOktatasiAzonosito => GetStringValue(TanuloOktatasiAzonositoImportData);
|
||||
|
||||
public string CompareHashTelefon { get; set; }
|
||||
|
||||
public string CompareHashEmail { get; set; }
|
||||
|
||||
public int OperationTelefon { get; set; }
|
||||
|
||||
public int OperationEmail { get; set; }
|
||||
|
||||
public int? FelhasznaloId { get; set; }
|
||||
|
||||
public int? TelefonId { get; set; }
|
||||
|
||||
public int? EmailId { get; set; }
|
||||
|
||||
public string Nev => GetStringValue(TanuloNeveImportData);
|
||||
|
||||
public string Telefonszam => GetStringValue(TanuloTelefonszamImportData);
|
||||
|
||||
public int? TelefonTipus => string.IsNullOrWhiteSpace(TelefonszamTipusaImportData) ? (int)TelefonTipusEnum.Ismeretlen : ((int)GeneratedAdatszotarTipusEnum.TelefonTipus).GetItemIdByTypeAndName(TelefonszamTipusaImportData, _tanevId);
|
||||
|
||||
public bool? TelefonAlapertelmezett => GetBooleanValue(TelefonszamAlapertelmezettImportData);
|
||||
|
||||
public string EmailCim => GetStringValue(TanuloEmailCimImportData);
|
||||
|
||||
public int? EmailTipus => string.IsNullOrWhiteSpace(EmailTipusImportData) ? (int)EmailTipusEnum.Na : ((int)GeneratedAdatszotarTipusEnum.EmailTipus).GetItemIdByTypeAndName(EmailTipusImportData, _tanevId);
|
||||
|
||||
public bool? EmailAlapertelmezett => GetBooleanValue(EmailAlapertelmezettImportData);
|
||||
|
||||
public TanuloItemCo Tanulo { get; set; }
|
||||
|
||||
private bool IsSzakkepzoIntezmeny { get; }
|
||||
|
||||
public bool IsVanAlapertelmezettTelefonszam { get; set; }
|
||||
|
||||
public bool IsVanAlapertelmezettEmail { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(TanuloNeveImportData) &&
|
||||
!string.IsNullOrWhiteSpace(TanuloOktatasiAzonositoImportData))
|
||||
{
|
||||
if (!FelhasznaloId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.HibaEzzelAzOktatasiAzonositovalNemLetezikTanuloEbbenATanevben);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy legyen vezetéknév és keresztnév is
|
||||
if (!string.IsNullOrWhiteSpace(TanuloNeveImportData) && (string.IsNullOrWhiteSpace(FelhasznaloVezeteknev) || string.IsNullOrWhiteSpace(FelhasznaloKeresztnev)))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.ATanuloNeveFormatumaNemMegfelelo);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(EmailTipusImportData))
|
||||
{
|
||||
if (!EmailTipus.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.HibaNincsIlyenEmailTipus);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TelefonszamTipusaImportData))
|
||||
{
|
||||
if (!TelefonTipus.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.HibaNincsIlyenTelefonTipus);
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(TanuloTelefonszamImportData) && string.IsNullOrWhiteSpace(TanuloEmailCimImportData))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.HibaATelefonszamEsEmailCimKozulEgyiketLegalabbMegKellAdni);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TanuloTelefonszamImportData) && (string.IsNullOrWhiteSpace(TelefonszamAlapertelmezettImportData) || string.IsNullOrWhiteSpace(TelefonszamTipusaImportData)))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.HibaKitoltottTelefonszamEsetenAlapErtEsTipusKotelezo);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TanuloEmailCimImportData) && !IsVanAlapertelmezettEmail && !(EmailAlapertelmezett.HasValue && EmailAlapertelmezett.Value))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.ATanulonakNincsAlapertelmezettEmailCimeARendszerbenAllitsaAlapertelmezettreATanuloEmailCimet);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TanuloTelefonszamImportData) && !IsVanAlapertelmezettTelefonszam && !(TelefonAlapertelmezett.HasValue && TelefonAlapertelmezett.Value))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.ATanulonakNincsAlapertelmezettTelefonszamaARendszerbenAllitsaalapertelmezettreATanuloTelefonszamat);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TanuloEmailCimImportData) && (string.IsNullOrWhiteSpace(EmailAlapertelmezettImportData) || string.IsNullOrWhiteSpace(EmailTipusImportData)))
|
||||
{
|
||||
yield return new ValidationResult(ImportExportTanulokElerhetosegiAdataikResource.HibaKitoltottEmailEsetenAlapErtEsTipusKotelezo);
|
||||
}
|
||||
|
||||
if (IsSzakkepzoIntezmeny && !string.IsNullOrWhiteSpace(TanuloOktatasiAzonositoImportData) && !Extensions.FelhasznaloExtensions.IsValidOktatasiAzonosito(TanuloOktatasiAzonositoImportData))
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.AMegadottOktatasiAzonositoHibas);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TelefonTanuloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TelefonTanuloImportJsonItemCo(TanulokElerhetosegiAdataikImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.TelefonId;
|
||||
FelhasznaloId = importItemCo.FelhasznaloId.Value;
|
||||
Nev = importItemCo.Nev;
|
||||
|
||||
Telefonszam = importItemCo.Telefonszam;
|
||||
TipusId = importItemCo.TelefonTipus;
|
||||
TipusNev = TipusId?.GetDisplayName<TelefonTipusEnum>(tanevId);
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(importItemCo.TelefonAlapertelmezett.HasValue && importItemCo.TelefonAlapertelmezett.Value);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationTelefon;
|
||||
}
|
||||
|
||||
[JsonProperty("Nev")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_FELHASZNALOID")]
|
||||
public int FelhasznaloId { get; set; }
|
||||
|
||||
[JsonProperty("C_TELEFONSZAM")]
|
||||
public string Telefonszam { get; set; }
|
||||
|
||||
[JsonProperty("C_TELEFONTIPUSA")]
|
||||
public int? TipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ISPUBLIC")]
|
||||
public string IsPublic => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISHIBASANMEGADVA")]
|
||||
public string IsHibasanMegadva => SDAConvert.ToSDABoolean(false);
|
||||
}
|
||||
|
||||
public class EmailTanuloImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public EmailTanuloImportJsonItemCo(TanulokElerhetosegiAdataikImportItemCo importItemCo, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Id = importItemCo.EmailId;
|
||||
FelhasznaloId = importItemCo.FelhasznaloId.Value;
|
||||
Nev = importItemCo.Nev;
|
||||
|
||||
EmailCim = importItemCo.EmailCim;
|
||||
TipusId = importItemCo.EmailTipus;
|
||||
TipusNev = TipusId?.GetDisplayName<EmailTipusEnum>(tanevId);
|
||||
IsAlapertelmezett = SDAConvert.ToSDABoolean(importItemCo.EmailAlapertelmezett.HasValue && importItemCo.EmailAlapertelmezett.Value);
|
||||
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.OperationEmail;
|
||||
}
|
||||
|
||||
[JsonProperty("Nev")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_FELHASZNALOID")]
|
||||
public int FelhasznaloId { get; set; }
|
||||
|
||||
[JsonProperty("C_EMAILCIM")]
|
||||
public string EmailCim { get; set; }
|
||||
|
||||
[JsonProperty("C_EMAILTIPUSA")]
|
||||
public int? TipusId { get; set; }
|
||||
|
||||
[JsonProperty("C_ALAPERTELMEZETT")]
|
||||
public string IsAlapertelmezett { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public string TipusNev { get; set; }
|
||||
|
||||
[JsonProperty("C_ISPUBLIC")]
|
||||
public string IsPublic => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_ISHIBASANMEGADVA")]
|
||||
public string IsHibasanMegadva => SDAConvert.ToSDABoolean(false);
|
||||
}
|
223
Kreta.BusinessLogic/HelperClasses/ImportCo/TeremImportCo.cs
Normal file
223
Kreta.BusinessLogic/HelperClasses/ImportCo/TeremImportCo.cs
Normal file
|
@ -0,0 +1,223 @@
|
|||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes;
|
||||
using Kreta.BusinessLogic.Validation;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.CustomAttributes;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Framework.Util;
|
||||
using Kreta.Resources;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kreta.BusinessLogic.HelperClasses.ImportCo
|
||||
{
|
||||
public class TeremImportCo : BaseImportCo
|
||||
{
|
||||
[JsonIgnore]
|
||||
public List<TeremImportItemCo> MainImportItemList { get; set; } = new List<TeremImportItemCo>();
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TeremImportItemCo> NemImportalhatoItemList { get; set; } = new List<TeremImportItemCo>();
|
||||
|
||||
[JsonProperty("T_TEREM_OSSZES")]
|
||||
public List<TeremImportJsonItemCo> MainImportJsonItemList { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public List<TeremItemCo> TeremCoList { get; set; }
|
||||
|
||||
public Dictionary<int, List<ValidationResult>> Validate()
|
||||
{
|
||||
var validationResultDictionary = new Dictionary<int, List<ValidationResult>>();
|
||||
|
||||
foreach (TeremImportItemCo 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 (validationResultList.Count > 0)
|
||||
{
|
||||
validationResultDictionary.Add(importItem.LineNumber, validationResultList);
|
||||
}
|
||||
}
|
||||
|
||||
Dictionary<int, string> lineNumberCompareHashDictionary = MainImportItemList.ToDictionary(x => x.LineNumber, x => x.CompareHash);
|
||||
var duplicatedRowConditonTextList = new List<string>
|
||||
{
|
||||
ImportExportTeremResource.ImportHeaderNameHelyisegNev
|
||||
};
|
||||
ValidateDuplicatedRows(validationResultDictionary, lineNumberCompareHashDictionary, duplicatedRowConditonTextList);
|
||||
return validationResultDictionary;
|
||||
}
|
||||
}
|
||||
|
||||
public class TeremImportItemCo : BaseImportItemCo, IValidatableObject
|
||||
{
|
||||
private readonly int _tanevId;
|
||||
|
||||
private TeremImportItemCo() { }
|
||||
|
||||
public TeremImportItemCo(int tanevId)
|
||||
{
|
||||
_tanevId = tanevId;
|
||||
}
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Technikai paraméter(ek) a reflection-ös exporthoz.
|
||||
/// </summary>
|
||||
public const string NemImportalhatoSorokExportAttributeId = nameof(NemImportalhatoSorokExportAttributeId);
|
||||
|
||||
#endregion Fields
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 00, nameof(ImportExportTeremResource.ImportHeaderNameHelyisegNev), typeof(ImportExportTeremResource))]
|
||||
[Required(ErrorMessageResourceName = nameof(ErrorResource.Required), ErrorMessageResourceType = typeof(ErrorResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTeremResource.ImportHeaderNameHelyisegNev), ResourceType = typeof(ImportExportTeremResource))]
|
||||
public string HelyisegNevImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 01, nameof(ImportExportTeremResource.ImportHeaderNameJelleg), typeof(ImportExportTeremResource))]
|
||||
[MaxLength(255, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTeremResource.ImportHeaderNameJelleg), ResourceType = typeof(ImportExportTeremResource))]
|
||||
public string JellegImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 02, nameof(ImportExportTeremResource.ImportHeaderNameBefogadokepesseg), typeof(ImportExportTeremResource))]
|
||||
[MaxLength(4, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTeremResource.ImportHeaderNameBefogadokepesseg), ResourceType = typeof(ImportExportTeremResource))]
|
||||
public string BefogadokepessegImportData { get; set; }
|
||||
|
||||
[SimpleExportColumn(NemImportalhatoSorokExportAttributeId, 03, nameof(ImportExportTeremResource.ImportHeaderNameAlapterulet), typeof(ImportExportTeremResource))]
|
||||
[MaxLength(4, ErrorMessageResourceName = nameof(CommonResource.MaxLengthValidation), ErrorMessageResourceType = typeof(CommonResource))]
|
||||
[Display(Name = nameof(ImportExportTeremResource.ImportHeaderNameAlapterulet), ResourceType = typeof(ImportExportTeremResource))]
|
||||
public string AlapteruletImportData { get; set; }
|
||||
|
||||
public string Nev => GetStringValue(HelyisegNevImportData);
|
||||
|
||||
public int? JellegId => string.IsNullOrWhiteSpace(JellegImportData) ? (int)TeremTipusEnum.Na : ((int)GeneratedAdatszotarTipusEnum.TeremTipus).GetItemIdByTypeAndName(JellegImportData, _tanevId);
|
||||
|
||||
public int? Kapacitas => GetIntValue(BefogadokepessegImportData);
|
||||
|
||||
public int? Terulet => GetIntValue(AlapteruletImportData);
|
||||
|
||||
#region Validate
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
{
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(JellegImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!JellegId.IsEntityId())
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.NincsIlyenTeremtipus);
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(BefogadokepessegImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!Kapacitas.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportTeremResource.ImportHeaderNameBefogadokepesseg.ToLowerInvariant(), BefogadokepessegImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Kapacitas < 0 || Kapacitas > 5000)
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.AKapacitasCsakEgy0Es5000KozottiEgeszSzamLehet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//NOTE: Ha van megadva bármilyen érték az import data-ban, meg kell vizsgálni, hogy sikerült-e átkonvertálni a megfelelő típusra.
|
||||
if (!string.IsNullOrWhiteSpace(AlapteruletImportData))
|
||||
{
|
||||
//NOTE: Ha az érték null, akkor a bejövő adat nem megfelelő formátumú!
|
||||
if (!Terulet.HasValue)
|
||||
{
|
||||
yield return new ValidationResult(string.Format(ImportExportCommonResource.InvalidNumberFormat, ImportExportTeremResource.ImportHeaderNameAlapterulet.ToLowerInvariant(), AlapteruletImportData));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Terulet < 0 || Terulet > 9999)
|
||||
{
|
||||
yield return new ValidationResult(ErrorResource.ATeruletCsakEgy0Es9999KozottiEgeszSzamLehet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Validate
|
||||
}
|
||||
|
||||
public class TeremImportJsonItemCo : BaseImportJsonItemCo
|
||||
{
|
||||
public TeremImportJsonItemCo(TeremImportItemCo importItemCo, int mukodesiHelyId, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Nev = importItemCo.Nev;
|
||||
//NOTE: Az JellegId.Value nem lehet null, mert ide már csak olyan elem jön be, aminek van jellege!
|
||||
JellegId = importItemCo.JellegId.Value;
|
||||
Kapacitas = importItemCo.Kapacitas;
|
||||
Terulet = importItemCo.Terulet;
|
||||
MukodesiHelyId = mukodesiHelyId;
|
||||
|
||||
Id = importItemCo.Id;
|
||||
LineNumber = importItemCo.LineNumber;
|
||||
Operation = importItemCo.Operation;
|
||||
}
|
||||
|
||||
public TeremImportJsonItemCo(OrarendImportItemCo orarendImportItemCo, int mukodesiHelyId, int tanevId, int intezmenyId, int felhasznaloId) : base(tanevId, intezmenyId, felhasznaloId)
|
||||
{
|
||||
Nev = orarendImportItemCo.TeremNev;
|
||||
JellegId = (int)TeremTipusEnum.Osztalyterem;
|
||||
Kapacitas = null;
|
||||
Terulet = null;
|
||||
MukodesiHelyId = mukodesiHelyId;
|
||||
|
||||
LineNumber = orarendImportItemCo.LineNumber;
|
||||
Operation = orarendImportItemCo.OperationTerem;
|
||||
}
|
||||
|
||||
#region Import Json Properties
|
||||
|
||||
[JsonProperty("C_NEV")]
|
||||
public string Nev { get; set; }
|
||||
|
||||
[JsonProperty("C_JELLEG")]
|
||||
public int JellegId { get; set; }
|
||||
|
||||
[JsonProperty("C_KAPACITAS")]
|
||||
public int? Kapacitas { get; set; }
|
||||
|
||||
[JsonProperty("C_TERULET")]
|
||||
public int? Terulet { get; set; }
|
||||
|
||||
[JsonProperty("C_MUKODESIHELYID")]
|
||||
public int MukodesiHelyId { get; set; }
|
||||
|
||||
#region Default Required Import Json Properties
|
||||
|
||||
[JsonProperty("C_ACTIVE")]
|
||||
public string IsActive => SDAConvert.ToSDABoolean(true);
|
||||
|
||||
[JsonProperty("C_TOBBORATLEHETTARTANI")]
|
||||
public string IsTobbOratLehetTartani => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_WIFILEFEDETT")]
|
||||
public string IsWifiLefedett => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
[JsonProperty("C_BERBEADHATO")]
|
||||
public string IsBerbeadhato => SDAConvert.ToSDABoolean(false);
|
||||
|
||||
#endregion Default Required Import Json Properties
|
||||
|
||||
#endregion Import Json Properties
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue