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 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 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 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 GetTantargyCompareHashImportItemCompareCoDictionary() { List coList = new TantargyHelper(ConnectionType).GetTantargyCoList(); var compareHashImportItemCompareCoDictionary = new Dictionary(); 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 GetOsztalyCompareHashImportItemCompareCoDictionary() { List coList = new OsztalyHelper(ConnectionType).GetOsztalyCoList(); var compareHashImportItemCompareCoDictionary = new Dictionary(); 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 GetCsoportCompareHashImportItemCompareCoDictionary() { List coList = new CsoportHelper(ConnectionType).GetCsoportCoList(); var compareHashImportItemCompareCoDictionary = new Dictionary(); 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 GetTantargyfelosztasCompareHashImportItemCompareCoDictionary(List baseTantargyfelosztasImportItemList) { List coList = new TantargyFelosztasHelper(ConnectionType).GetTantargyfelosztasCoList(); var compareHashImportItemCompareCoDictionary = new Dictionary(); 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; } } }