594 lines
30 KiB
C#
594 lines
30 KiB
C#
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
|
|
}
|
|
}
|