init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
160
Kreta.Client/Kir/KirClient.cs
Normal file
160
Kreta.Client/Kir/KirClient.cs
Normal file
|
@ -0,0 +1,160 @@
|
|||
using System;
|
||||
using System.Runtime.Caching;
|
||||
using Kreta.Client.Kir.Interfaces;
|
||||
using Kreta.Client.Kir.Models;
|
||||
using Kreta.Client.Kir2Service;
|
||||
using Kreta.Core;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.Client.Kir
|
||||
{
|
||||
public class KirClient : IKirClient
|
||||
{
|
||||
#region Privát osztály változók
|
||||
|
||||
private string KirTokenCacheKey { get; set; }
|
||||
|
||||
private string KirToken
|
||||
{
|
||||
get => Cache.Get(KirTokenCacheKey)?.ToString();
|
||||
set
|
||||
{
|
||||
if (KirToken == null)
|
||||
{
|
||||
Cache.Add(KirTokenCacheKey, value, new CacheItemPolicy { AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddMinutes(5)) });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IKirAuthentication KirAuthentication { get; }
|
||||
|
||||
private KIR2AuthHeaderType Kir2AuthHeaderType { get; set; }
|
||||
|
||||
private string IntezmenyAzonosito { get; set; }
|
||||
|
||||
#endregion Privát osztály változók
|
||||
|
||||
public static string GetServiceUrl()
|
||||
{
|
||||
using (var client = new Service_KIR_IFClient())
|
||||
{
|
||||
return client.Endpoint.Address.Uri.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public KirClient(IKirAuthentication kirAuthentication, string kirTokenCacheKey)
|
||||
{
|
||||
KirAuthentication = kirAuthentication;
|
||||
|
||||
try
|
||||
{
|
||||
KirTokenCacheKey = kirTokenCacheKey;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(KirToken))
|
||||
{
|
||||
Authenticate();
|
||||
}
|
||||
else
|
||||
{
|
||||
Kir2AuthHeaderType = KirAuthentication.GetAuthHeader(KirToken);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private void Authenticate()
|
||||
{
|
||||
string kirToken = KirAuthentication.GetKirToken();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(kirToken))
|
||||
{
|
||||
throw new Exception(ErrorResource.AKirRendszerbenTortenoAzonositasKozbenHibaTortent);
|
||||
}
|
||||
|
||||
KirToken = kirToken;
|
||||
|
||||
Kir2AuthHeaderType = KirAuthentication.GetAuthHeader(kirToken);
|
||||
}
|
||||
|
||||
private T CallService<T>(Func<Service_KIR_IFClient, T> action)
|
||||
{
|
||||
return new ClientHelper().CallService(action);
|
||||
}
|
||||
|
||||
#region Kérelem beküldése
|
||||
|
||||
public KirKerelemModel.BekuldesResponseModel KerelemBekuldese(KirKerelemModel.BekuldesRequestModel requestModel)
|
||||
{
|
||||
KerelemBekuldesRequestType request = KirKerelemModel.BekuldesRequestModel.ConvertRequestModelToRequestType(requestModel);
|
||||
|
||||
try
|
||||
{
|
||||
KirKerelemModel.BekuldesResponseModel resultRequest = KerelemBekuldese(request);
|
||||
|
||||
return resultRequest;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private KirKerelemModel.BekuldesResponseModel KerelemBekuldese(KerelemBekuldesRequestType request)
|
||||
{
|
||||
KerelemBekuldesResponseType response = CallService(x => x.KerelemBekuldes(Kir2AuthHeaderType, request));
|
||||
|
||||
if (response.isSuccess)
|
||||
{
|
||||
KirKerelemModel.BekuldesResponseModel resultResponse = KirKerelemModel.BekuldesResponseModel.ConvertResponseTypeToResponseModel(response);
|
||||
|
||||
return resultResponse;
|
||||
}
|
||||
|
||||
throw new Exception(ErrorResource.NemSikerultAKirKerelemBekuldese);
|
||||
}
|
||||
|
||||
#endregion Kérelem beküldése
|
||||
|
||||
#region Kérelem státusz lekérdezés
|
||||
|
||||
public KirKerelemModel.StatuszLekerdezesResponseModel KerelemStatuszLekerdezes(KirKerelemModel.StatuszLekerdezesRequestModel requestModel)
|
||||
{
|
||||
KerelemStatuszLekerdezesRequestType request = KirKerelemModel.StatuszLekerdezesRequestModel.ConvertRequestModelToRequestType(requestModel);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(requestModel.KontenerElemId))
|
||||
{
|
||||
request.KontenerElemID = requestModel.KontenerElemId;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
KirKerelemModel.StatuszLekerdezesResponseModel resultResponse = KerelemStatuszLekerdezes(request);
|
||||
|
||||
return resultResponse;
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private KirKerelemModel.StatuszLekerdezesResponseModel KerelemStatuszLekerdezes(KerelemStatuszLekerdezesRequestType request)
|
||||
{
|
||||
KerelemStatuszLekerdezesResponseType response = CallService(x => x.KerelemStatuszLekerdezes(Kir2AuthHeaderType, request));
|
||||
|
||||
if (response.isSuccess)
|
||||
{
|
||||
KirKerelemModel.StatuszLekerdezesResponseModel resultResponse = KirKerelemModel.StatuszLekerdezesResponseModel.ConvertResponseTypeToResponseModel(response);
|
||||
|
||||
return resultResponse;
|
||||
}
|
||||
|
||||
throw new Exception(ErrorResource.NemSikerultAKirStatuszLekerdezes);
|
||||
}
|
||||
|
||||
#endregion Kérelem státusz lekérdezés
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue