init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
107
Kreta.BusinessLogic/Helpers/KirImportHelper.cs
Normal file
107
Kreta.BusinessLogic/Helpers/KirImportHelper.cs
Normal file
|
@ -0,0 +1,107 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Caching;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.Core;
|
||||
using Kreta.Core.Domain;
|
||||
using Kreta.Core.Domain.Interface;
|
||||
using Kreta.Core.KIR.Domain.Model;
|
||||
using Kreta.Core.KIR.Domain.Model.KirExport;
|
||||
using Kreta.Core.KIR.Factory.Interface;
|
||||
using Kreta.Core.KIR.Service.Interface;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public partial class KirImportHelper
|
||||
{
|
||||
private const int KirListCacheExpirationInSeconds = 120;
|
||||
|
||||
private IKirService KirService { get; }
|
||||
public string KretaKod { get; set; }
|
||||
private Func<T, bool> ValidationFor4T<T>(FelhasznaloKirSearchCo felhasznaloKirSearchCo)
|
||||
where T : class, IKirFelhasznalo
|
||||
=> kirAlkalmazott => (string.IsNullOrWhiteSpace(felhasznaloKirSearchCo.Nev) || kirAlkalmazott.SzuletesiNev.IndexOf(felhasznaloKirSearchCo.Nev, StringComparison.OrdinalIgnoreCase) >= 0) &&
|
||||
(!felhasznaloKirSearchCo.SzuletesiDatumIg.HasValue || kirAlkalmazott.SzuletesiDatum <= felhasznaloKirSearchCo.SzuletesiDatumIg) &&
|
||||
(!felhasznaloKirSearchCo.SzuletesiDatumTol.HasValue || kirAlkalmazott.SzuletesiDatum >= felhasznaloKirSearchCo.SzuletesiDatumTol) &&
|
||||
(string.IsNullOrWhiteSpace(felhasznaloKirSearchCo.OktatasiAzonosito) || kirAlkalmazott.OktatasiAzonosito.StartsWith(felhasznaloKirSearchCo.OktatasiAzonosito)) &&
|
||||
(string.IsNullOrWhiteSpace(felhasznaloKirSearchCo.SzuletesiHely) || kirAlkalmazott.SzuletesiHely.StartsWith(felhasznaloKirSearchCo.SzuletesiHely));
|
||||
private Func<T, bool> SearchFor4T<T>(string szuletesiNev, string anyjaNeve, DateTime szuletesiDatum, string szuletesiHely)
|
||||
where T : class, IKirFelhasznalo
|
||||
=> kirFelhasznalo => kirFelhasznalo.SzuletesiNev == szuletesiNev &&
|
||||
kirFelhasznalo.AnyjaNeve == anyjaNeve &&
|
||||
kirFelhasznalo.SzuletesiDatum == szuletesiDatum &&
|
||||
kirFelhasznalo.SzuletesiHely == szuletesiHely;
|
||||
|
||||
public KirImportHelper(IKirServiceFactory kirServiceFactory, AuthHeaderModel authHeaderModel)
|
||||
{
|
||||
if (kirServiceFactory == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(kirServiceFactory));
|
||||
}
|
||||
|
||||
KirService = kirServiceFactory.GetKirService(authHeaderModel ?? throw new ArgumentNullException(nameof(authHeaderModel)));
|
||||
}
|
||||
|
||||
public List<TelephelyModel> GetKirTelephelyList()
|
||||
=> KirService.GetTelephelyList();
|
||||
|
||||
public string KretaTelephelyRegisztracio(int telephelyKod)
|
||||
=> KirService.KretaTelephelyRegisztracio(
|
||||
new KretaTelephelyRegisztracioRequestModel
|
||||
{
|
||||
TelephelyModel = new TelephelyModel
|
||||
{
|
||||
Kod = telephelyKod
|
||||
}
|
||||
});
|
||||
|
||||
public List<TOut> GetKirFelhasznaloList<TOut>(string cacheKey)
|
||||
where TOut : class, IKirFelhasznalo, new()
|
||||
{
|
||||
var kirFelhasznaloCacheList = (List<TOut>)Cache.Get(cacheKey);
|
||||
|
||||
if (kirFelhasznaloCacheList == null)
|
||||
{
|
||||
var kirRequestModel = new KirRequestModel
|
||||
{
|
||||
KretaKod = KretaKod
|
||||
};
|
||||
|
||||
var felhasznalo = new TOut();
|
||||
|
||||
if (felhasznalo is KirAlkalmazott)
|
||||
{
|
||||
kirFelhasznaloCacheList = KirService
|
||||
.GetPedagogusList(kirRequestModel)
|
||||
.ConvertAll(new Converter<AlkalmazottModel, KirAlkalmazott>(x => x)) as List<TOut>;
|
||||
}
|
||||
|
||||
if (felhasznalo is KirTanulo)
|
||||
{
|
||||
kirFelhasznaloCacheList = KirService
|
||||
.GetTanuloList(kirRequestModel)
|
||||
.ConvertAll(new Converter<TanuloModel, KirTanulo>(x => x)) as List<TOut>;
|
||||
}
|
||||
|
||||
Cache.Add(cacheKey, kirFelhasznaloCacheList, new CacheItemPolicy { AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddSeconds(KirListCacheExpirationInSeconds)) });
|
||||
}
|
||||
|
||||
return kirFelhasznaloCacheList;
|
||||
}
|
||||
|
||||
public List<T> GetKirFelhasznaloList<T>(FelhasznaloKirSearchCo felhasznaloKirSearchCo, string cacheKey)
|
||||
where T : class, IKirFelhasznalo, new()
|
||||
=> GetKirFelhasznaloList<T>(cacheKey)
|
||||
.Where(ValidationFor4T<T>(felhasznaloKirSearchCo))
|
||||
.ToList();
|
||||
|
||||
public TOut GetKirFelhasznaloAdatok<TIn, TOut>(Converter<TIn, TOut> converter, string cacheKey, string szuletesiNev, string anyjaNeve, DateTime szuletesiDatum, string szuletesiHely)
|
||||
where TIn : class, IKirFelhasznalo, new()
|
||||
where TOut : class
|
||||
=> GetKirFelhasznaloList<TIn>(cacheKey)
|
||||
.Where(SearchFor4T<TIn>(szuletesiNev, anyjaNeve, szuletesiDatum, szuletesiHely))
|
||||
.Select(x => converter.Invoke(x))
|
||||
.FirstOrDefault();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue