398 lines
27 KiB
C#
398 lines
27 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Runtime.Caching;
|
|
using Kreta.BusinessLogic.Classes;
|
|
using Kreta.BusinessLogic.HelperClasses;
|
|
using Kreta.BusinessLogic.HelperClasses.ImportCo;
|
|
using Kreta.BusinessLogic.Logic;
|
|
using Kreta.Core;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.DataAccessManual;
|
|
using Kreta.DataAccessManual.ParameterClasses;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums.ImportExport;
|
|
using Kreta.Resources;
|
|
|
|
namespace Kreta.BusinessLogic.Helpers.ImportExport
|
|
{
|
|
public class AlkalmazottMunkaugyiAdatokImportExportHelper : LogicBase
|
|
{
|
|
#region Fields
|
|
|
|
private readonly string _importObjectCacheKey;
|
|
|
|
#endregion Fields
|
|
|
|
#region Properties
|
|
|
|
public static Dictionary<int, string> ImportHeaderList => new Dictionary<int, string>
|
|
{
|
|
{ 00, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNeve },
|
|
{ 01, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNevElotag },
|
|
{ 02, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusVezetekneve },
|
|
{ 03, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusUtoneve },
|
|
{ 04, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusAnyjaNeve },
|
|
{ 05, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiDatuma },
|
|
{ 06, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiHelye },
|
|
{ 07, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusOktatasiAzonosito },
|
|
{ 08, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAdoazonositoJel },
|
|
{ 09, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusFokozat },
|
|
{ 10, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkakor },
|
|
{ 11, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasiJogviszony },
|
|
{ 12, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama },
|
|
{ 13, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama },
|
|
{ 14, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFeladattalTerheltOraszamOka },
|
|
{ 15, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAlkalmazasKezdete },
|
|
{ 16, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasTipusa },
|
|
{ 17, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameVezetoiOraszamOka },
|
|
{ 18, CommonResource.Feladatellatasihely },
|
|
{ 19, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosanTavollevo },
|
|
{ 20, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameBetoltetlenAllashely },
|
|
{ 21, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKulsoAlkalmazott },
|
|
{ 22, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoallasu },
|
|
{ 23, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameNyugdijasTovabbfoglalkoztatott },
|
|
{ 24, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoiVagyvizsgaelnokiTevekenyseg },
|
|
{ 25, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakmaiTovabbkepzes },
|
|
{ 26, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakvizsga },
|
|
{ 27, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoIntezmenyenBelul },
|
|
{ 28, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoMasIntezmenynel },
|
|
{ 29, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosHelyettesites },
|
|
{ 30, ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoSzaktanacsado }
|
|
};
|
|
|
|
public AlkalmazottMunkaugyiAdatokImportCo ImportCo
|
|
{
|
|
get => (AlkalmazottMunkaugyiAdatokImportCo)Cache.Get(_importObjectCacheKey);
|
|
set
|
|
{
|
|
if (ImportCo != null)
|
|
{
|
|
Cache.Remove(_importObjectCacheKey);
|
|
}
|
|
|
|
Cache.Add(_importObjectCacheKey, value, new CacheItemPolicy { SlidingExpiration = TimeSpan.FromMinutes(30) });
|
|
}
|
|
}
|
|
|
|
#endregion Properties
|
|
|
|
#region Constructors
|
|
|
|
public AlkalmazottMunkaugyiAdatokImportExportHelper(IConnectionType connectionType) : base(connectionType)
|
|
{
|
|
_importObjectCacheKey = $"{nameof(AlkalmazottMunkaugyiAdatokImportCo)}_{IntezmenyId}_{FelhasznaloId}_ImportObjectCacheKey";
|
|
}
|
|
|
|
#endregion Constructors
|
|
|
|
public void SetImportCo(List<List<string>> importData, bool isSzakkepzoIntezmeny)
|
|
{
|
|
AlkalmazottMunkaugyiAdatokImportCo importCo = GetImportCoFromImportData(importData);
|
|
importCo.ImportMuvelet = 1;
|
|
|
|
SetNemImportalhatoSorokByValidation(importCo, isSzakkepzoIntezmeny);
|
|
|
|
SetOperationAndNemImportalhatoSorokByOperation(importCo);
|
|
|
|
var mainImportJsonItemList = new List<AlkalmazottMunkaugyiAdatokImportJsonItemCo>(importCo.MainImportItemList.Select(x => new AlkalmazottMunkaugyiAdatokImportJsonItemCo(x, TanevId, IntezmenyId, FelhasznaloId)));
|
|
importCo.MainImportJsonItemList = mainImportJsonItemList;
|
|
|
|
ImportCo = importCo;
|
|
}
|
|
|
|
private static void SetNemImportalhatoSorokByValidation(AlkalmazottMunkaugyiAdatokImportCo importCo, bool isSzakkepzoIntezmeny)
|
|
{
|
|
Dictionary<int, List<ValidationResult>> validationResultDictionary = importCo.Validate(isSzakkepzoIntezmeny);
|
|
|
|
//NOTE: Azokat a sorokat, amelyek hibásak beletesszük a NemImportalhatoItemList-be!
|
|
foreach (AlkalmazottMunkaugyiAdatokImportItemCo importItem in importCo.MainImportItemList.Where(x => validationResultDictionary.Keys.Contains(x.LineNumber)))
|
|
{
|
|
IEnumerable<ValidationResult> validationResultList = validationResultDictionary[importItem.LineNumber];
|
|
importItem.ErrorList = validationResultList.Select(x => x.ErrorMessage).ToList();
|
|
importCo.NemImportalhatoItemList.Add(importItem);
|
|
}
|
|
|
|
//NOTE: Azokat a sorokat, amelyek bekerültek a NemImportalhatoItemList-be, azokat kiveszzük a MainImportItemList-ből!
|
|
importCo.MainImportItemList.RemoveRange(importCo.NemImportalhatoItemList);
|
|
}
|
|
|
|
private void SetOperationAndNemImportalhatoSorokByOperation(AlkalmazottMunkaugyiAdatokImportCo importCo)
|
|
{
|
|
int importMuvelet = importCo.ImportMuvelet;
|
|
//NOTE: Azért van szükség Dictionary-re, mert így sokkal gyorsabb a keresés!
|
|
Dictionary<string, ImportItemCompareCo> compareHashImportItemCompareCoDictionary = GetCompareHashImportItemCompareCoDictionary(importCo.AlkalmazottMunkaugyiAdatokCoList);
|
|
foreach (AlkalmazottMunkaugyiAdatokImportItemCo importItem in importCo.MainImportItemList)
|
|
{
|
|
string compareHash = importItem.CompareHash;
|
|
//NOTE: Ha nem találtunk egyezést, akkor mindeképpen Insert!
|
|
if (!compareHashImportItemCompareCoDictionary.ContainsKey(compareHash))
|
|
{
|
|
importItem.Operation = (int)ImportItemOperationEnum.Insert;
|
|
}
|
|
//NOTE: Ha találtunk egyezést, akkor...
|
|
else
|
|
{
|
|
ImportItemCompareCo importItemCompareCo = compareHashImportItemCompareCoDictionary[compareHash];
|
|
//NOTE: ...ha az import művelet DeleteAndInsert és a db-ből jövő adat Importalt(a nem importáltakat egyelőre nem töröljük), akkor Insert, mert töröljük a korábbi elemeket és újra be kell szúrni!
|
|
if (importMuvelet == (int)ImportMuveletEnum.DeleteAndInsert && importItemCompareCo.Importalt)
|
|
{
|
|
importItem.Operation = (int)ImportItemOperationEnum.Insert;
|
|
}
|
|
//NOTE: ...ha nincs törlés, akkor...
|
|
else
|
|
{
|
|
//NOTE: ...ha a művelet InsertAndUpdate, akkor Update és beállítjuk az Id-t!
|
|
if (importMuvelet == (int)ImportMuveletEnum.InsertAndUpdate)
|
|
{
|
|
importItem.Id = importItemCompareCo.Id;
|
|
importItem.Operation = (int)ImportItemOperationEnum.Update;
|
|
}
|
|
//NOTE: ...ha a művelet nem InsertAndUpdate, akkor hozzá kell adni a nem NemImportalhatoItemList-hez és jelezni, hogy már szerepel az adatbázisban(Insert vagy DeleteAndInsert műveletnél. A DeleteAndInsert csak akkor fut be ide, ha az elem nem importált.)!
|
|
else
|
|
{
|
|
importItem.ErrorList.Add(ImportExportCommonResource.NemImportalhatoMertMarSzerepelAzAdatbazisban);
|
|
importCo.NemImportalhatoItemList.Add(importItem);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//NOTE: Azokat a sorokat, amelyek bekerültek a NemImportalhatoItemList-be, azokat kiveszzük a MainImportItemList-ből!
|
|
importCo.MainImportItemList.RemoveRange(importCo.NemImportalhatoItemList);
|
|
}
|
|
|
|
public AlkalmazottMunkaugyiAdatokImportCo GetImportCoFromImportData(List<List<string>> importData)
|
|
{
|
|
List<AlkalmazottMunkaugyiAdatokCo> alkalmazottMunkaugyiAdatokCoList = null;
|
|
DataSet feladatellatasiHelyDataSet = null;
|
|
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
{
|
|
alkalmazottMunkaugyiAdatokCoList = new AlkalmazottMunkaugyiAdatokHelper(new DalHandlerConnectionType(ConnectionType, dalHandler)).GetAlkalmazottMunkaugyiAdatokCoList();
|
|
feladatellatasiHelyDataSet = dalHandler.FeladatEllatasiHelyDal().GetFeladatellatasiHelyDataSet(TanevId);
|
|
});
|
|
|
|
var importCo = new AlkalmazottMunkaugyiAdatokImportCo
|
|
{
|
|
AlkalmazottMunkaugyiAdatokCoList = alkalmazottMunkaugyiAdatokCoList
|
|
};
|
|
|
|
var feladatellatasiHelyTuple = new List<(int FeladatellatasiHelyId, string FeladatellatasiHely)>();
|
|
|
|
foreach (DataRow dataRow in feladatellatasiHelyDataSet.Tables[0].Rows)
|
|
{
|
|
feladatellatasiHelyTuple.Add((
|
|
SDAConvert.ToInt32(dataRow["Id"]),
|
|
$"{SDAConvert.ToString(dataRow["MukodesiHelyNev"])} - {SDAConvert.ToString(dataRow["OktatasiNevelesiFeladatTipusId_DNAME"])}"));
|
|
}
|
|
|
|
int lineNumber = 1;
|
|
foreach (List<string> importDataRow in importData.Skip(1))
|
|
{
|
|
var importItemCo = new AlkalmazottMunkaugyiAdatokImportItemCo(TanevId)
|
|
{
|
|
LineNumber = lineNumber,
|
|
|
|
PedagogusNeveImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNeve)],
|
|
PedagogusNevElotagImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNevElotag)],
|
|
PedagogusVezetekneveImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusVezetekneve)],
|
|
PedagogusUtoneveImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusUtoneve)],
|
|
PedagogusAnyjaNeveImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusAnyjaNeve)],
|
|
PedagogusSzuletesiDatumaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiDatuma)],
|
|
PedagogusSzuletesiHelyeImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusSzuletesiHelye)],
|
|
PedagogusOktatasiAzonositoImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusOktatasiAzonosito)],
|
|
AdoazonositoJelImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAdoazonositoJel)],
|
|
PedagogusFokozatImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusFokozat)],
|
|
MunkakorImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkakor)],
|
|
FoglalkoztatasiJogviszonyImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasiJogviszony)],
|
|
KotelezoOraszamaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKotelezoOraszama)],
|
|
MunkaidokedvezmenyOraszamaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkaidokedvezmenyOraszama)],
|
|
FeladattalTerheltOraszamOkaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFeladattalTerheltOraszamOka)],
|
|
AlkalmazasKezdeteImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAlkalmazasKezdete)],
|
|
FoglalkoztatasTipusaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasTipusa)],
|
|
VezetoiOraszamOkaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameVezetoiOraszamOka)],
|
|
FeladatellatasiHelyImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(CommonResource.Feladatellatasihely)],
|
|
TartosanTavollevoImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosanTavollevo)],
|
|
BetoltetlenAllashelyImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameBetoltetlenAllashely)],
|
|
KulsoAlkalmazottImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameKulsoAlkalmazott)],
|
|
FoallasuImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoallasu)],
|
|
NyugdijasTovabbfoglalkoztatottImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameNyugdijasTovabbfoglalkoztatott)],
|
|
SzakertoiVagyVizsgaelnokiTevekenyseguImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoiVagyvizsgaelnokiTevekenyseg)],
|
|
SzakmaiTovabbkepzesImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakmaiTovabbkepzes)],
|
|
SzakvizsgaImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakvizsga)],
|
|
AttanitoIntezmenyenBelulImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoIntezmenyenBelul)],
|
|
IsAttanitoMasIntezmenynelImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameAttanitoMasIntezmenynel)],
|
|
IsTartosanTavollevoHelyettesitesImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameTartosHelyettesites)],
|
|
SzakertoImportData = importDataRow[ImportHeaderList.GetKeyByUniqueValue(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameSzakertoSzaktanacsado)]
|
|
};
|
|
|
|
int? feladatellatasiHelyId = feladatellatasiHelyTuple.FirstOrDefault(x => x.FeladatellatasiHely == importItemCo.FeladatellatasiHelyImportData).FeladatellatasiHelyId;
|
|
if (feladatellatasiHelyId.IsEntityId())
|
|
{
|
|
importItemCo.FeladatellatasiHelyId = feladatellatasiHelyId;
|
|
}
|
|
|
|
var md5HashInput =
|
|
$"{importItemCo.Vezeteknev?.ToComparableString()} {importItemCo.Keresztnev?.ToComparableString()}" +
|
|
importItemCo.AnyjaNeve?.ToComparableString() +
|
|
importItemCo.SzuletesiIdoString?.ToComparableString() +
|
|
importItemCo.SzuletesiHely?.ToComparableString();
|
|
importItemCo.CompareHash = ImportExportHelper.GetMd5Hash(md5HashInput);
|
|
|
|
importCo.MainImportItemList.Add(importItemCo);
|
|
|
|
lineNumber++;
|
|
}
|
|
|
|
return importCo;
|
|
}
|
|
|
|
#region Template
|
|
|
|
public MemoryStream GetTemplate()
|
|
{
|
|
var dropDownColumnSourceDictionary = GetDefaultDropDownColumnSourceDictionary();
|
|
|
|
List<SimpleExportColumnCo> simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottMunkaugyiAdatokCo>(AlkalmazottMunkaugyiAdatokCo.AlkalmazottMunkaugyiAdatokExportAttributeId, dropDownColumnSourceDictionary);
|
|
|
|
return SimpleExportLogic.GetTemplate(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportDefaultSheetName, simpleExportColumnCos);
|
|
}
|
|
|
|
#endregion Template
|
|
|
|
#region Export
|
|
|
|
public MemoryStream GetExport()
|
|
{
|
|
var dropDownColumnSourceDictionary = GetDefaultDropDownColumnSourceDictionary();
|
|
|
|
List<AlkalmazottMunkaugyiAdatokCo> coList = new AlkalmazottMunkaugyiAdatokHelper(ConnectionType).GetAlkalmazottMunkaugyiAdatokCoList().OrderBy(x => x.NevElotagNelkul).ToList();
|
|
List<SimpleExportColumnCo> simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottMunkaugyiAdatokCo>(AlkalmazottMunkaugyiAdatokCo.AlkalmazottMunkaugyiAdatokExportAttributeId, dropDownColumnSourceDictionary);
|
|
|
|
return SimpleExportLogic.GetExport(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportDefaultSheetName, simpleExportColumnCos, coList, TanevId);
|
|
}
|
|
|
|
public MemoryStream GetNemImportalhatoSorokExport()
|
|
{
|
|
var dropDownColumnSourceDictionary = GetDefaultDropDownColumnSourceDictionary();
|
|
|
|
List<AlkalmazottMunkaugyiAdatokImportItemCo> coList = ImportCo.NemImportalhatoItemList;
|
|
List<SimpleExportColumnCo> simpleExportColumnCos = SimpleExportLogic.GetSimpleExportColumnCos<AlkalmazottMunkaugyiAdatokImportItemCo>(AlkalmazottMunkaugyiAdatokImportItemCo.NemImportalhatoSorokExportAttributeId, dropDownColumnSourceDictionary);
|
|
|
|
return ImportExportHelper.NemImportalhatoSorokExport(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportDefaultSheetName, simpleExportColumnCos, coList, TanevId);
|
|
}
|
|
|
|
#endregion Export
|
|
|
|
public void Import(List<AlkalmazottMunkaugyiAdatokImportJsonItemCo> importCo)
|
|
{
|
|
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
{
|
|
var dal = dalHandler.AlkalmazottMunkaugyiAdatokDal();
|
|
foreach (AlkalmazottMunkaugyiAdatokImportJsonItemCo item in importCo)
|
|
{
|
|
var alkalmazottMunkaugyiAdatokImportPco = new AlkalmazottMunkaugyiAdatokImportPco
|
|
{
|
|
Id = item.Id.Value,
|
|
BesorolasiFokozat = item.BesorolasiFokozat,
|
|
MunkakorTipusa = item.Munkakor,
|
|
MunkaviszonyTipusa = item.Munkaviszony,
|
|
KotelezoOraszam = item.KotelezoOraszam ?? 0,
|
|
MunkaidoKedvezmenyOraszam = item.MunkaidoKedvezmenyOraszam,
|
|
MunkaidoKedvezmenyOka = item.MunkaidoKedvezmenyOka,
|
|
AlkalmazasKezdete = item.AlkalmazasKezdete,
|
|
FoglalkoztatasTipus = item.FoglalkoztatasTipus,
|
|
VezetoiOraszamOka = item.VezetoiOraszamOka,
|
|
FeladatEllatasiHelyId = item.FeladatellatasiHelyId,
|
|
AllandoHelyettesitesre = item.IsTartosTavollevoHelyettesites ?? false,
|
|
TartosHelyettesites = item.IsTartosTavollet ?? false,
|
|
BetoltetlenAllashely = item.IsBetoltetlenAllashely ?? false,
|
|
IsKulsoAlkalmazott = item.IsKulsoAlkalmazott ?? false,
|
|
Nyugdijas = item.IsNyugdijas ?? false,
|
|
Attanito = item.IsAttanito ?? false,
|
|
AdoazonositoJel = item.AdoazonositoJel,
|
|
Foallas = item.IsFoallasu ?? false,
|
|
SzakertoiVizsgaelnoki = item.IsSzakertoiVagyVizsgaelnokiTevekenysegu ?? false,
|
|
Szakvizsga = item.IsSzakvizsga ?? false,
|
|
OktatasiAzonosito = item.OktatasiAzonosito,
|
|
Tovabbkepzes = item.IsSzakmaiTovabbkepzes ?? false,
|
|
SzakertoMesterpedagogus = item.BesorolasiFokozat.HasValue && item.BesorolasiFokozat.Value == (int)BesorolasiFokozatTipusEnum.mesterpedagogus && item.IsSzakerto.HasValue && item.IsSzakerto.Value,
|
|
IsSzakertoKutatotanar = item.BesorolasiFokozat.HasValue && item.BesorolasiFokozat.Value == (int)BesorolasiFokozatTipusEnum.kutatotanar && item.IsSzakerto.HasValue && item.IsSzakerto.Value,
|
|
IsAttanitoMasIntezmenynel = item.IsAttanitoMasIntezmenynel ?? false
|
|
};
|
|
dal.Import(alkalmazottMunkaugyiAdatokImportPco);
|
|
}
|
|
});
|
|
}
|
|
|
|
private Dictionary<string, ImportItemCompareCo> GetCompareHashImportItemCompareCoDictionary(List<AlkalmazottMunkaugyiAdatokCo> coList)
|
|
{
|
|
var compareHashImportItemCompareCoDictionary = new Dictionary<string, ImportItemCompareCo>();
|
|
foreach (var co in coList)
|
|
{
|
|
string md5HashInput =
|
|
$"{co.FelhasznaloVezeteknevComparableString} {co.FelhasznaloKeresztnevComparableString}" +
|
|
co.FelhasznaloAnyjaNeveComparableString +
|
|
co.FelhasznaloSzuletesiIdoComparableString +
|
|
co.FelhasznaloSzuletesiHelyComparableString;
|
|
string compareHash = ImportExportHelper.GetMd5Hash(md5HashInput);
|
|
|
|
var importItemCompareCo = new ImportItemCompareCo
|
|
{
|
|
Id = co.MunkaugyiAdatId,
|
|
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;
|
|
}
|
|
|
|
private Dictionary<string, IList<string>> GetDefaultDropDownColumnSourceDictionary()
|
|
{
|
|
//NOTE: Create dropdown lists
|
|
var logicalColumnDictionary = new Dictionary<string, IList<string>>();
|
|
|
|
var dropDownColumnSourceDictionary = new Dictionary<string, IList<string>>(logicalColumnDictionary)
|
|
{
|
|
{ ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNevElotag, Constants.ElotagList },
|
|
};
|
|
|
|
Dal.CustomConnection.Run(ConnectionType, dalHandler =>
|
|
{
|
|
var connectionType = new DalHandlerConnectionType(ConnectionType, dalHandler);
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusFokozat, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.BesorolasiFokozatTipus));
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMunkakor, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.MunkakorTipus));
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasiJogviszony, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.MunkaviszonyTipus));
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFeladattalTerheltOraszamOka, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.MunkaidoKedvezmenyOka));
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameFoglalkoztatasTipusa, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.FoglalkoztatasTipusa));
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameVezetoiOraszamOka, EnumExtensions.GetAdatszotarElemekForTipus(TanevId, GeneratedAdatszotarTipusEnum.VezetoiOraszamokTipus));
|
|
|
|
var helper = new ImportExportHelper(connectionType);
|
|
DataSet feladatellatasiHelyDataSet = dalHandler.FeladatEllatasiHelyDal().GetFeladatellatasiHelyDataSet(TanevId);
|
|
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNamePedagogusNeve, helper.GetTanarList());
|
|
dropDownColumnSourceDictionary.Add(CommonResource.Feladatellatasihely, helper.GetFeladatellatasiHelyList(feladatellatasiHelyDataSet));
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameMukodesiHely, helper.GetMukodesiHelyList(feladatellatasiHelyDataSet));
|
|
dropDownColumnSourceDictionary.Add(ImportExportAlkalmazottMunkaugyiAdatokResource.ImportHeaderNameEllatottKoznevelesiFeladat, helper.GetEllatottKoznevelesiFeladatList(feladatellatasiHelyDataSet));
|
|
});
|
|
|
|
return dropDownColumnSourceDictionary;
|
|
}
|
|
}
|
|
}
|