206 lines
8 KiB
C#
206 lines
8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|