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

View file

@ -0,0 +1,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
}
}