This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,206 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Cache;
using Kreta.Client.Eugyintezes.Configuration;
using RestSharp;
namespace Kreta.Client.Eugyintezes
{
public class EugyintezesClient : IEugyintezesClient
{
private IEugyintezesClientConfiguration EugyintezesClientConfiguration { get; }
public EugyintezesClient(IEugyintezesClientConfiguration EugyintezesClientConfiguration)
{
this.EugyintezesClientConfiguration = EugyintezesClientConfiguration ?? throw new ArgumentNullException(nameof(EugyintezesClientConfiguration));
if (string.IsNullOrWhiteSpace(EugyintezesClientConfiguration.BaseUrl))
{
throw new ArgumentNullException(nameof(EugyintezesClientConfiguration.BaseUrl));
}
if (string.IsNullOrWhiteSpace(EugyintezesClientConfiguration.ApiKey))
{
throw new ArgumentNullException(nameof(EugyintezesClientConfiguration.ApiKey));
}
}
public IRestResponse RestSharpPostBody(string url, string jsonData)
{
var client = new RestClient(url)
{
CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore)
};
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("X-API-Key", EugyintezesClientConfiguration.ApiKey);
request.AddParameter("application/json", jsonData, ParameterType.RequestBody);
return client.Execute(request);
}
public IRestResponse RestSharpGetQueryString(string url, Dictionary<string, string> queryParams = null)
{
var client = new RestClient(url)
{
CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore)
};
var request = new RestRequest(Method.GET);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddHeader("X-API-Key", EugyintezesClientConfiguration.ApiKey);
if (queryParams != null)
{
foreach (var item in queryParams)
{
request.AddQueryParameter(item.Key, item.Value);
}
}
return client.Execute(request);
}
public string GetBAIPreCheck(string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + "/integration-kreta-api/v1/ugy/statuszok2";
var apiResult = RestSharpPostBody(url, postData);
return apiResult.Content;
}
public string PostBAIHatarozatok(string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + "/integration-kreta-api/v1/ugy/sendbaihatarozatadatok";
var apiResult = RestSharpPostBody(url, postData);
return apiResult.Content;
}
public int GetOlvasatlanPostaladaElemekSzama(string intezmenyAzonosito, Guid felhasznaloIdpEgyediAzonosito)
{
int result = 0;
try
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/intezmenyek/{intezmenyAzonosito}/uzenetek/olvasatlanokszama";
var queryParams = new Dictionary<string, string>
{
{ nameof(felhasznaloIdpEgyediAzonosito), felhasznaloIdpEgyediAzonosito.ToString() }
};
var apiResult = RestSharpGetQueryString(url, queryParams);
if (apiResult.StatusCode == HttpStatusCode.OK)
{
int.TryParse(apiResult.Content, out result);
}
return result;
}
catch { return result; }
}
public bool GetUzenetkezelesElerheto(string intezmenyAzonosito)
{
bool result = false;
try
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/intezmenyek/{intezmenyAzonosito}/uzenetkezelesElerheto";
var apiResult = RestSharpGetQueryString(url);
if (apiResult.StatusCode == HttpStatusCode.OK)
{
bool.TryParse(apiResult.Content, out result);
}
return result;
}
catch { return result; }
}
public string PostTeremBerbeadhatoStatuszValtozas(string postData, string intezmenyAzonosito)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/intezmenyek/{intezmenyAzonosito}/foglalhatotermek/statuszvaltozas";
var apiResult = RestSharpPostBody(url, postData);
return apiResult.Content;
}
public string PostTanuloOsztalyBesorolasStatuszValtozas(string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + "/integration-kreta-api/v1/tanulok/osztalyvaltozas";
var apiResult = RestSharpPostBody(url, postData);
return apiResult.Content;
}
public string GetUzenetek(string intezmenyAzonosito, Guid felhasznaloIdpEgyediAzonosito, int sorokSzamaMax)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/intezmenyek/{intezmenyAzonosito}/uzenetek";
var queryParams = new Dictionary<string, string>()
{
{ nameof(felhasznaloIdpEgyediAzonosito), felhasznaloIdpEgyediAzonosito.ToString() },
{ nameof(sorokSzamaMax), sorokSzamaMax.ToString() }
};
var apiResult = RestSharpGetQueryString(url, queryParams);
if (apiResult.StatusCode == HttpStatusCode.OK)
{
return apiResult.Content;
}
return null;
}
public string GetUgyek(string intezmenyAzonosito, Guid felhasznaloIdpEgyediAzonosito, int sorokSzamaMax)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/intezmenyek/{intezmenyAzonosito}/felhasznalougyek";
var queryParams = new Dictionary<string, string>()
{
{ nameof(felhasznaloIdpEgyediAzonosito), felhasznaloIdpEgyediAzonosito.ToString() },
{ nameof(sorokSzamaMax), sorokSzamaMax.ToString() }
};
var apiResult = RestSharpGetQueryString(url, queryParams);
if (apiResult.StatusCode == HttpStatusCode.OK)
{
return apiResult.Content;
}
return null;
}
public IRestResponse NebuloInsert(string kretaIntezmenyAzonosito, string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/ugy/bai/{kretaIntezmenyAzonosito}/nebulok";
var apiResult = RestSharpPostBody(url, postData);
return apiResult;
}
public IRestResponse NebuloStatuszUpdate(string kretaIntezmenyAzonosito, string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/ugy/bai/{kretaIntezmenyAzonosito}/nebulok/statuszmodositas";
var apiResult = RestSharpPostBody(url, postData);
return apiResult;
}
public IRestResponse NebuloDataUpdate(string kretaIntezmenyAzonosito, string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/ugy/bai/{kretaIntezmenyAzonosito}/nebulok/modositas";
var apiResult = RestSharpPostBody(url, postData);
return apiResult;
}
public IRestResponse NebuloDelete(string kretaIntezmenyAzonosito, string postData)
{
var url = EugyintezesClientConfiguration.BaseUrl + $"/integration-kreta-api/v1/ugy/bai/{kretaIntezmenyAzonosito}/nebulok/torles";
var apiResult = RestSharpPostBody(url, postData);
return apiResult;
}
}
}