init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
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
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue