164 lines
7.6 KiB
C#
164 lines
7.6 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.HelperClasses.ImportCo;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Enums.ManualEnums.ImportExport;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers.ImportExport
|
|
{
|
|
public class BaseTantargyfelosztasImportExportHelper : LogicBase
|
|
{
|
|
public BaseTantargyfelosztasImportExportHelper(IConnectionType connectionType) : base(connectionType) { }
|
|
|
|
protected static void SetOperationTantargy(BaseTantargyfelosztasImportItemCo importItem, Dictionary<string, ImportItemCompareCo> compareHashImportItemCompareCoDictionary)
|
|
{
|
|
var compareHash = importItem.CompareHashTantargy;
|
|
//NOTE: Ha nem találtunk egyezést, akkor Insert!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
importItem.OperationTantargy = (int)ImportItemOperationEnum.Insert;
|
|
}
|
|
}
|
|
|
|
protected static void SetOperationOsztaly(BaseTantargyfelosztasImportItemCo importItem, Dictionary<string, ImportItemCompareCo> compareHashImportItemCompareCoDictionary)
|
|
{
|
|
var compareHash = importItem.CompareHashOsztaly;
|
|
if (!string.IsNullOrWhiteSpace(compareHash))
|
|
{
|
|
//NOTE: Ha nem találtunk egyezést, akkor Insert!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
importItem.OperationOsztaly = (int)ImportItemOperationEnum.Insert;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected static void SetOperationCsoport(BaseTantargyfelosztasImportItemCo importItem, Dictionary<string, ImportItemCompareCo> compareHashImportItemCompareCoDictionary)
|
|
{
|
|
var compareHash = importItem.CompareHashCsoport;
|
|
if (!string.IsNullOrWhiteSpace(compareHash))
|
|
{
|
|
//NOTE: Ha nem találtunk egyezést, akkor Insert!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
importItem.OperationCsoport = (int)ImportItemOperationEnum.Insert;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected Dictionary<string, ImportItemCompareCo> GetTantargyCompareHashImportItemCompareCoDictionary()
|
|
{
|
|
List<TantargyItemCo> coList = new TantargyHelper(ConnectionType).GetTantargyCoList();
|
|
|
|
var compareHashImportItemCompareCoDictionary = new Dictionary<string, ImportItemCompareCo>();
|
|
foreach (TantargyItemCo co in coList)
|
|
{
|
|
string md5HashInput = co.NevComparableString;
|
|
string compareHash = ImportExportHelper.GetMd5Hash(md5HashInput);
|
|
|
|
var importItemCompareCo = new ImportItemCompareCo
|
|
{
|
|
Id = co.Id,
|
|
CompareHash = compareHash,
|
|
Importalt = co.Importalt
|
|
};
|
|
//NOTE: Elvileg nem fordulhatna elő, de ha az adatbázisban duplikált adat van, akkor csak az elsőt adjuk hozzá!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
compareHashImportItemCompareCoDictionary.Add(compareHash, importItemCompareCo);
|
|
}
|
|
}
|
|
|
|
return compareHashImportItemCompareCoDictionary;
|
|
}
|
|
|
|
protected Dictionary<string, ImportItemCompareCo> GetOsztalyCompareHashImportItemCompareCoDictionary()
|
|
{
|
|
List<OsztalyItemCo> coList = new OsztalyHelper(ConnectionType).GetOsztalyCoList();
|
|
|
|
var compareHashImportItemCompareCoDictionary = new Dictionary<string, ImportItemCompareCo>();
|
|
foreach (OsztalyItemCo co in coList)
|
|
{
|
|
string md5HashInput = co.NevComparableString;
|
|
string compareHash = ImportExportHelper.GetMd5Hash(md5HashInput);
|
|
|
|
var importItemCompareCo = new ImportItemCompareCo
|
|
{
|
|
Id = co.Id,
|
|
CompareHash = compareHash,
|
|
Importalt = co.Importalt
|
|
};
|
|
//NOTE: Elvileg nem fordulhatna elő, de ha az adatbázisban duplikált adat van, akkor csak az elsőt adjuk hozzá!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
compareHashImportItemCompareCoDictionary.Add(compareHash, importItemCompareCo);
|
|
}
|
|
}
|
|
|
|
return compareHashImportItemCompareCoDictionary;
|
|
}
|
|
|
|
protected Dictionary<string, ImportItemCompareCo> GetCsoportCompareHashImportItemCompareCoDictionary()
|
|
{
|
|
List<CsoportItemCo> coList = new CsoportHelper(ConnectionType).GetCsoportCoList();
|
|
|
|
var compareHashImportItemCompareCoDictionary = new Dictionary<string, ImportItemCompareCo>();
|
|
foreach (CsoportItemCo co in coList)
|
|
{
|
|
string md5HashInput = co.NevComparableString;
|
|
string compareHash = ImportExportHelper.GetMd5Hash(md5HashInput);
|
|
|
|
var importItemCompareCo = new ImportItemCompareCo
|
|
{
|
|
Id = co.Id,
|
|
CompareHash = compareHash,
|
|
Importalt = co.Importalt
|
|
};
|
|
//NOTE: Elvileg nem fordulhatna elő, de ha az adatbázisban duplikált adat van, akkor csak az elsőt adjuk hozzá!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
compareHashImportItemCompareCoDictionary.Add(compareHash, importItemCompareCo);
|
|
}
|
|
}
|
|
|
|
return compareHashImportItemCompareCoDictionary;
|
|
}
|
|
|
|
protected Dictionary<string, ImportItemCompareCo> GetTantargyfelosztasCompareHashImportItemCompareCoDictionary(List<BaseTantargyfelosztasImportItemCo> baseTantargyfelosztasImportItemList)
|
|
{
|
|
List<TantargyfelosztasItemCo> coList = new TantargyFelosztasHelper(ConnectionType).GetTantargyfelosztasCoList();
|
|
|
|
var compareHashImportItemCompareCoDictionary = new Dictionary<string, ImportItemCompareCo>();
|
|
foreach (TantargyfelosztasItemCo co in coList)
|
|
{
|
|
var md5HashInput =
|
|
co.OsztalyCsoportNevComparableString +
|
|
co.TantargyNevComparableString +
|
|
co.TanarNevComparableString;
|
|
//NOTE: Ha a tanar neve szerepel az import-ban és van hozzá tartozó születési idő, akkor hozzá kell tenni a compare-he a születési idő-t is
|
|
if (baseTantargyfelosztasImportItemList.Any(x => x.TanarNev.ToComparableString() == co.TanarNevComparableString && x.TanarSzuletesiIdo.HasValue))
|
|
{
|
|
md5HashInput += co.TanarSzuletesiIdoComparableString;
|
|
}
|
|
|
|
string compareHash = ImportExportHelper.GetMd5Hash(md5HashInput);
|
|
|
|
var importItemCompareCo = new ImportItemCompareCo
|
|
{
|
|
Id = co.Id,
|
|
CompareHash = compareHash,
|
|
Importalt = co.Importalt
|
|
};
|
|
//NOTE: Elvileg nem fordulhatna elő, de ha az adatbázisban duplikált adat van, akkor csak az elsőt adjuk hozzá!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
compareHashImportItemCompareCoDictionary.Add(compareHash, importItemCompareCo);
|
|
}
|
|
}
|
|
|
|
return compareHashImportItemCompareCoDictionary;
|
|
}
|
|
}
|
|
}
|