init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
Kreta.BusinessLogic/Helpers
195
Kreta.BusinessLogic/Helpers/KirExportHelper.cs
Normal file
195
Kreta.BusinessLogic/Helpers/KirExportHelper.cs
Normal file
|
@ -0,0 +1,195 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Utils;
|
||||
using Kreta.Client.Kir;
|
||||
using Kreta.Client.Kir.Interfaces;
|
||||
using Kreta.Client.Kir.KirModels;
|
||||
using Kreta.Client.Kir.Models;
|
||||
using Kreta.Client.Kir2Service;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.DataAccess.Interfaces;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class KirExportHelper : LogicBase
|
||||
{
|
||||
private IKirClient _kirClient;
|
||||
|
||||
public KirExportHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
public void KirLogin(KirLoginCo loginCo, string felhasznaloNevCacheKey, string jelszoCacheKey, string kirTokenCacheKey)
|
||||
{
|
||||
IKirAuthentication kirAuthentication = new KirAuthentication(KirLoginCo.ConvertCoToKirModel(loginCo), felhasznaloNevCacheKey, jelszoCacheKey);
|
||||
_kirClient = new KirClient(kirAuthentication, kirTokenCacheKey);
|
||||
}
|
||||
|
||||
public void KirSzinkronForTanulo(KirLoginCo loginCo, List<KirNebuloCo> kirNebuloList, string felhasznaloNevCacheKey, string jelszoCacheKey, string kirTokenCacheKey, string iarAzonosito)
|
||||
{
|
||||
if (_kirClient == null)
|
||||
{
|
||||
KirLogin(loginCo, felhasznaloNevCacheKey, jelszoCacheKey, kirTokenCacheKey);
|
||||
}
|
||||
|
||||
string kontenerId;
|
||||
|
||||
var statuszRequestModel = new KirKerelemModel.StatuszLekerdezesRequestModel
|
||||
{
|
||||
IARAzonosito = iarAzonosito,
|
||||
};
|
||||
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
if (kirNebuloList.Count > 0)
|
||||
{
|
||||
kontenerId = Guid.NewGuid().ToString("N").Remove(25);
|
||||
|
||||
var kerelemXml = new KerelemXMLType
|
||||
{
|
||||
Item = new KIR2SznyTanuloJogviszonyBejelentesKerelemType
|
||||
{
|
||||
KerelemFej = new KerelemFejType
|
||||
{
|
||||
RogzitoKliens = new Client.Kir.KirModels.stringWithStringId { id = "Kreta", Value = "String" },
|
||||
RogzitoNeve = new stringWithId { id = 0, Value = loginCo.FelhasznaloNev },
|
||||
RogzitesDatuma = DateTime.Now,
|
||||
KliensId = FelhasznaloId.ToString()
|
||||
},
|
||||
TanuloJogviszonyBejelentesek = new TanuloJogviszonyBejelentesekType
|
||||
{
|
||||
TanuloJogviszonyBejelentes = KirNebuloCo.ConvertNebuloToKirNebulo(h, kirNebuloList, IntezmenyId, TanevId),
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
string kirXmlString = CommonUtils.SerializeXmlFromClass(kerelemXml);
|
||||
byte[] plainTextBytes = Encoding.UTF8.GetBytes(kirXmlString);
|
||||
string base64EncodedXml = Convert.ToBase64String(plainTextBytes);
|
||||
|
||||
var kerelemBekuldesRequestModel = new KirKerelemModel.BekuldesRequestModel()
|
||||
{
|
||||
KontenerId = kontenerId,
|
||||
IARAzonosito = iarAzonosito,
|
||||
CelSzolgaltatasType = Client.Kir2Service.CelSzolgaltatasType.KIR2SZNYTJVB,
|
||||
Idopont = DateTime.Now,
|
||||
KerelemXml = base64EncodedXml
|
||||
};
|
||||
|
||||
KirKerelemModel.BekuldesResponseModel responseModel = _kirClient.KerelemBekuldese(kerelemBekuldesRequestModel);
|
||||
|
||||
InsertKirKontener(kerelemBekuldesRequestModel, responseModel.Valaszkod, h);
|
||||
InsertKirKontenerElem(kirNebuloList.Select(x => x.Id).ToList(), kontenerId, h);
|
||||
}
|
||||
|
||||
GetFelhasznaloAktivKontenerId(h).ForEach(aktivKontenerId =>
|
||||
{
|
||||
statuszRequestModel.KontenerId = aktivKontenerId;
|
||||
KirKerelemModel.StatuszLekerdezesResponseModel responseModel = _kirClient.KerelemStatuszLekerdezes(statuszRequestModel);
|
||||
|
||||
InsertKirKontenerStatusz(aktivKontenerId, responseModel, h);
|
||||
SetNebuloKirStatusz(responseModel, GetNebuloFromKontener(aktivKontenerId, h), IntezmenyId, h);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void SetNebuloKirStatusz(KirKerelemModel.StatuszLekerdezesResponseModel responseModel, List<int> kirNebuloList, int intezmenyId, IDalHandler h)
|
||||
{
|
||||
Client.Kir2Service.KontenerStatuszType kontenerResponse = responseModel.KontenerStatusz;
|
||||
var nebuloStatuszList = new List<(int NebuloId, int? KontenerStatuszKod, string KontenerElemStatuszKod)>();
|
||||
|
||||
kirNebuloList.ForEach(nebuloId =>
|
||||
{
|
||||
if (responseModel.KontenerStatusz.KontenerElemStatuszok == null)
|
||||
{
|
||||
nebuloStatuszList.Add((nebuloId, kontenerResponse.KontenerStatuszKod, (string)null));
|
||||
}
|
||||
else
|
||||
{
|
||||
List<Client.Kir2Service.KontenerElemStatuszType> kontenerElemStatuszokList = responseModel.KontenerStatusz.KontenerElemStatuszok.ToList();
|
||||
List<Client.Kir2Service.KontenerElemStatuszType> hibasKontenerElemStatuszokList = kontenerElemStatuszokList.Where(y => y.StatuszInfo.StatuszKod.Contains("ERR")).ToList();
|
||||
List<Client.Kir2Service.KontenerElemStatuszType> hibatlanKontenerElemStatuszokList = kontenerElemStatuszokList.Where(y => y.StatuszInfo.StatuszKod == "KEZ").ToList();
|
||||
|
||||
hibasKontenerElemStatuszokList.ForEach(x =>
|
||||
hibatlanKontenerElemStatuszokList.RemoveAll(y => y.KontenerElemID == x.KontenerElemID)
|
||||
);
|
||||
|
||||
hibatlanKontenerElemStatuszokList.ForEach(x =>
|
||||
nebuloStatuszList.Add((Convert.ToInt32(x.KontenerElemID), (int?)null, x.StatuszInfo.StatuszKod))
|
||||
);
|
||||
|
||||
hibasKontenerElemStatuszokList.ForEach(x =>
|
||||
nebuloStatuszList.Add((Convert.ToInt32(x.KontenerElemID), (int?)null, x.StatuszInfo.StatuszKod.Remove(0, 3)))
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
nebuloStatuszList.ForEach(nebuloStatusz =>
|
||||
{
|
||||
h.Nebulo().SetNebuloKirStatusz(nebuloStatusz.NebuloId, nebuloStatusz.KontenerStatuszKod != null ? nebuloStatusz.KontenerStatuszKod.ToString() : nebuloStatusz.KontenerElemStatuszKod, intezmenyId, TanevId);
|
||||
});
|
||||
}
|
||||
|
||||
private List<int> GetNebuloFromKontener(string kontenerId, IDalHandler h)
|
||||
{
|
||||
return h.Nebulo().GetNebuloFromKontener(kontenerId);
|
||||
}
|
||||
|
||||
private void InsertKirKontener(KirKerelemModel.BekuldesRequestModel kirKontener, string kontenerValaszkod, IDalHandler h)
|
||||
{
|
||||
IKirKontenerDAL dal = h.KirKontenerDAL();
|
||||
IKIRKontener entity = dal.Get();
|
||||
|
||||
entity.CelSzolgaltatas = kirKontener.CelSzolgaltatasType.ToString();
|
||||
entity.IARAzonosito = kirKontener.IARAzonosito;
|
||||
entity.KontenerId = kirKontener.KontenerId;
|
||||
entity.IntezmenyAzonosito = IntezmenyAzonosito;
|
||||
entity.ValaszKod = kontenerValaszkod;
|
||||
entity.FelhasznaloId = FelhasznaloId;
|
||||
|
||||
dal.Insert(entity);
|
||||
}
|
||||
|
||||
private List<string> GetFelhasznaloAktivKontenerId(IDalHandler h)
|
||||
{
|
||||
return h.KirKontenerDAL().GetFelhasznaloAktivKontenerId(FelhasznaloId, IntezmenyId, TanevId);
|
||||
}
|
||||
|
||||
private void InsertKirKontenerStatusz(string kontenerId, KirKerelemModel.StatuszLekerdezesResponseModel statuszResponseModel, IDalHandler h)
|
||||
{
|
||||
IKirKontenerDAL kirKontenerDal = h.KirKontenerDAL();
|
||||
IKirKontenerStatuszDAL kirKontenerStatusz = h.KirKontenerStatuszDAL();
|
||||
IKirKontenerElemStatuszDAL kirKontenerElemStatusz = h.KirKontenerElemStatuszDAL();
|
||||
|
||||
IKIRKontener kirKontener = kirKontenerDal.GetByFelhasznalo(FelhasznaloId, IntezmenyAzonosito, kontenerId);
|
||||
|
||||
kirKontenerStatusz.InsertByKirKontener(kirKontener, statuszResponseModel);
|
||||
|
||||
if (statuszResponseModel.KontenerStatusz.KontenerElemStatuszok != null)
|
||||
{
|
||||
kirKontenerElemStatusz.InsertManyByKirKontener(kirKontener, statuszResponseModel);
|
||||
}
|
||||
}
|
||||
|
||||
private void InsertKirKontenerElem(List<int> nebuloIdList, string kontenerId, IDalHandler h)
|
||||
{
|
||||
IKirKontenerDAL kirKontenerDal = h.KirKontenerDAL();
|
||||
|
||||
nebuloIdList.ForEach(nebuloId =>
|
||||
{
|
||||
IKirKontenerElemDAL dal = h.KirKontenerElemDAL();
|
||||
IKIRKontenerElem entity = dal.Get();
|
||||
|
||||
entity.KIRKontenerId = kirKontenerDal.GetByFelhasznalo(FelhasznaloId, IntezmenyAzonosito, kontenerId).ID;
|
||||
entity.KontenerElemId = nebuloId;
|
||||
entity.NebuloId = nebuloId;
|
||||
|
||||
dal.Insert(entity);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue