805 lines
35 KiB
C#
805 lines
35 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using Kreta.Client.ClientBase;
|
|
using Kreta.Client.KGR.Configuration;
|
|
using Kreta.Client.KGR.Exceptions;
|
|
using Kreta.Client.KGR.Extension;
|
|
using Kreta.Client.KGR.Model;
|
|
using Kreta.Client.KGR.Request;
|
|
using Kreta.Client.KGR.Response;
|
|
using Kreta.Core;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Exceptions;
|
|
using Kreta.Resources;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Kreta.Client.KGR
|
|
{
|
|
internal class KGRClient : RestSharpClientBase, IKGRClient
|
|
{
|
|
private readonly IKGRClientConfiguration kgrClientConfiguration;
|
|
|
|
public KGRClient(IKGRClientConfiguration kgrClientConfiguration)
|
|
{
|
|
this.kgrClientConfiguration = kgrClientConfiguration ?? throw new ArgumentNullException(nameof(kgrClientConfiguration));
|
|
}
|
|
|
|
public List<EszkozModel> KGREszkozList(EszkozHeaderRequest request)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"kreta/eszkozok/intezmenyi";
|
|
var response = Post(relativeUri, token.AccessToken.GetAuthorizationHeaderWithJson(request.IntezmenyGuid), queryStrings: HeaderExtension.GetEszkozQueryString(request.IntezmenyAzonosito, request.Sztsz));
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<EszkozModel>>(response.Result);
|
|
}
|
|
|
|
return new List<EszkozModel>();
|
|
}
|
|
|
|
return new List<EszkozModel>();
|
|
}
|
|
|
|
public List<ProjektModel> ProjektList(ProjektHeaderRequest request)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"kreta/projektek/felhasznalo/{request.AlkalmazottId}/osszes";
|
|
var response = Get(relativeUri, token.AccessToken.GetAuthorizationHeaderWithJson(request.IntezmenyGuid));
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<ProjektModel>>(response.Result);
|
|
}
|
|
|
|
return new List<ProjektModel>();
|
|
}
|
|
|
|
return new List<ProjektModel>();
|
|
}
|
|
|
|
public List<ProjektModel> ProjektJelentkezes(ProjektJelentkezesModel model)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/projektek/felhasznalo/jelentkezes";
|
|
var response = Put(relativeUri, token.AccessToken.GetAuthorizationHeaderWithJson(), body: model);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return new List<ProjektModel>();
|
|
}
|
|
|
|
return new List<ProjektModel>();
|
|
}
|
|
|
|
return new List<ProjektModel>();
|
|
}
|
|
|
|
public ApaczaiPalyazatModel CreateApaczaiPalyazat(ApaczaiPalyazatFelvetelRequest model)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/felvetel";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", model.Palyazo.IdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", model.TanevId.ToString());
|
|
headers.Add("retrieve", "true");
|
|
|
|
var response = Post(relativeUri, headers, body: model);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<ApaczaiPalyazatModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatBenyujtas, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiPalyazatBenyujtas));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiPalyazatBenyujtas);
|
|
}
|
|
|
|
public ApaczaiPalyazatModel PalyazatAdategyeztetes(ApaczaiPalyazatFelvetelRequest model)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/adategyeztetes";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", model.Palyazo.IdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", model.TanevId.ToString());
|
|
headers.Add("retrieve", "true");
|
|
|
|
var response = Post(relativeUri, headers, body: model);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<ApaczaiPalyazatModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatAdategyeztetes, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiPalyazatAdategyeztetes));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiPalyazatAdategyeztetes);
|
|
}
|
|
|
|
public ApaczaiPalyazatModel GetApaczaiPalyazat(int tanevSorszam, Guid tanuloIdpEgyediAzonosito)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<ApaczaiPalyazatModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatLekeres, response.Exception);
|
|
}
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatLekeres);
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiPalyazatLekeres);
|
|
}
|
|
|
|
public List<ApaczaiPalyazatDokumentumModel> GetApaczaiPalyazatDokumentumai(int tanevSorszam, Guid tanuloIdpEgyediAzonosito)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/fajl/felhasznalo/osszes";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<ApaczaiPalyazatDokumentumModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiDokumentumokLekerese, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiDokumentumokLekerese));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiDokumentumokLekerese);
|
|
}
|
|
|
|
public byte[] GetApaczaiPalyazatDokumentuma(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, Guid fileId)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/fajl/letoltes";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
headers.Add("FileServiceEgyediAzonosito", fileId.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return response.RawBytes;
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiDokumentumLetoltes, response.Exception);
|
|
}
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiDokumentumLetoltes);
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiDokumentumLetoltes);
|
|
}
|
|
|
|
public bool PostApaczaiPalyazatDokumentumBinaryFiles(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, ApaczaiUploadFileRequestBinary model)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
headers.Add("FileTypeId", model.PostedFileCategory.ToString());
|
|
|
|
var relativeUri = $"/kreta/apaczai/fajl/stream/feltoltes";
|
|
|
|
var postedFiles = new List<Jira.Model.Request.File>() { new Jira.Model.Request.File()
|
|
{
|
|
Content = model.File,
|
|
ContentType = model.PostedFileContentType,
|
|
FileName = model.PostedFileName,
|
|
Name = "fajl"
|
|
}};
|
|
|
|
var response = Post(relativeUri, headers, fileList: postedFiles);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiDokumentumFeltoltes, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiDokumentumFeltoltes));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiDokumentumFeltoltes);
|
|
}
|
|
|
|
public ApaczaiPalyazatModel GetApaczaiVisszavonas(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, bool retrieve = false)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/visszavonas";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
headers.Add("Retrieve", retrieve.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<ApaczaiPalyazatModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatVisszavonas, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiPalyazatVisszavonas));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiPalyazatVisszavonas);
|
|
}
|
|
|
|
public List<ApaczaiIgenylesModel> GetIgenylesekModelList(int tanevSorszam, Guid intezmenyEgyediAzonosito)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/intezmeny/osszes";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
headers.Add("IntezmenyEgyediAzonosito", intezmenyEgyediAzonosito.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<ApaczaiIgenylesModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatVisszavonas, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiIgenylesekLekerese));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiIgenylesekLekerese);
|
|
}
|
|
|
|
public List<ApaczaiKifizetesModel> GetKifizetesekModelList(int tanevSorszam)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/{tanevSorszam}";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
//headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
try
|
|
{
|
|
return JsonConvert.DeserializeObject<List<ApaczaiKifizetesModel>>(response.Result);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return new List<ApaczaiKifizetesModel>();
|
|
}
|
|
}
|
|
|
|
return new List<ApaczaiKifizetesModel>();
|
|
}
|
|
|
|
return new List<ApaczaiKifizetesModel>();
|
|
}
|
|
|
|
public bool DeleteApaczaiPalyazatDokumentuma(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, Guid fileId)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/fajl/torles";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
headers.Add("FileServiceEgyediAzonosito", fileId.ToString());
|
|
|
|
var response = Delete(relativeUri, headers);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiDokumentumTorles, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiDokumentumTorles));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiDokumentumTorles);
|
|
}
|
|
|
|
public bool Fellebbezes(Guid tanuloIdpEgyediAzonosito, int tanevSorszam, string indoklas)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/fellebbez";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
var model = new ApaczaiFellebbezesRequest() { FellebbezesKomment = indoklas };
|
|
var response = Post(relativeUri, headers, body: model);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatFellebbezesBenyujtas, response.Exception);
|
|
}
|
|
var exception = new ApplicationException(string.Empty);
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiPalyazatFellebbezesBenyujtas));
|
|
throw exception;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public List<ApaczaiPalyazatTortenetModel> GetApaczaiPalyazatTortenet(int tanevSorszam, Guid tanuloIdpEgyediAzonosito)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/palyazattortenet";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("EgyediAzonosito", tanuloIdpEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<ApaczaiPalyazatTortenetModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenApaczaiPalyazatTortenetLekeres, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("ApaczaiHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenApaczaiPalyazatTortenetLekeres));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenApaczaiPalyazatTortenetLekeres);
|
|
}
|
|
|
|
public List<IntezmenyiBeszerzesModel> GetIntezmenyiBeszerzesList(Guid intezmenyEgyediAzonosito, int? tanevSorszam)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/beszerzes/tanev/osszes";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("IntezmenyEgyediAzonosito", intezmenyEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam?.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<IntezmenyiBeszerzesModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenIntezmenyiBeszerzesListaLekeres, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenIntezmenyiBeszerzesListaLekeres));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenIntezmenyiBeszerzesListaLekeres);
|
|
}
|
|
|
|
public List<IntezmenyiBeszerzesModel> GetIntezmenyiBeszerzesExport(Guid intezmenyEgyediAzonosito, int? tanevSorszam)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/beszerzes/tanev/osszes/export";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("IntezmenyEgyediAzonosito", intezmenyEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam?.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<IntezmenyiBeszerzesModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenIntezmenyiBeszerzesListaExportalas, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenIntezmenyiBeszerzesListaExportalas));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenIntezmenyiBeszerzesListaExportalas);
|
|
}
|
|
|
|
public IntezmenyiBeszerzesModel SaveIntezmenyiBeszerzes(IntezmenyiBeszerzesModel model)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = model.Id.IsEntityId() ? $"/kreta/beszerzes/adategyeztetes" : $"/kreta/beszerzes/felvetel";
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("retrieve", "false");
|
|
|
|
var response = Post(relativeUri, headers, body: model);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<IntezmenyiBeszerzesModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenBeszerzesFelvetel, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenBeszerzesFelvetel));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenBeszerzesFelvetel);
|
|
}
|
|
|
|
public IntezmenyiBeszerzesModel GetIntezmenyiBeszerzes(Guid intezmenyEgyediAzonosito, int id)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/beszerzes";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("Id", id.ToString());
|
|
headers.Add("IntezmenyEgyediAzonosito", intezmenyEgyediAzonosito.ToString());
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<IntezmenyiBeszerzesModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenBeszerzesLekeres, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenBeszerzesLekeres));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenBeszerzesLekeres);
|
|
}
|
|
|
|
public List<IntezmenyiBeszerzesAdatszotarAllapotModel> GetIntezmenyiBeszerzesAdatszotarAllapotList()
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/beszerzes/adatszotar/allapot";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<IntezmenyiBeszerzesAdatszotarAllapotModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenIntezmenyiBeszerzesAllapotListaLekeres, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenIntezmenyiBeszerzesAllapotListaLekeres));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenIntezmenyiBeszerzesAllapotListaLekeres);
|
|
}
|
|
|
|
public List<IntezmenyiBeszerzesAdatszotarTargyModel> GetIntezmenyiBeszerzesAdatszotarTargyList()
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/beszerzes/adatszotar/targy";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<List<IntezmenyiBeszerzesAdatszotarTargyModel>>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenIntezmenyiBeszerzesTargyListaLekeres, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenIntezmenyiBeszerzesTargyListaLekeres));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenIntezmenyiBeszerzesTargyListaLekeres);
|
|
}
|
|
|
|
public IntezmenyiBeszerzesVisszavonasModel PostIntezmenyiBeszerzesVisszavonas(IntezmenyiBeszerzesVisszavonasRequest request)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/beszerzes/visszavonas";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("Retrieve", "true");
|
|
|
|
var response = Post(relativeUri, headers, body: request);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<IntezmenyiBeszerzesVisszavonasModel>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new ApplicationException(ErrorResource.SikertelenIntezmenyiBeszerzesVisszavonas, response.Exception);
|
|
}
|
|
var exception = new ApplicationException();
|
|
exception.Data.Add("IntezmenyBeszerzesHiba", GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenIntezmenyiBeszerzesVisszavonas));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenIntezmenyiBeszerzesVisszavonas);
|
|
}
|
|
|
|
public bool HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonosito(Guid intezmenyEgyediAzonosito, int tanevSorszam, string oktatasiAzonosito)
|
|
{
|
|
var token = GetToken();
|
|
if (token.IsSuccess)
|
|
{
|
|
BaseUrl = kgrClientConfiguration.KGRUrl;
|
|
|
|
var relativeUri = $"/kreta/apaczai/palyazhat";
|
|
|
|
var headers = token.AccessToken.GetAuthorizationHeaderWithJson();
|
|
headers.Add("IntezmenyEgyediAzonosito", intezmenyEgyediAzonosito.ToString());
|
|
headers.Add("TanevId", tanevSorszam.ToString());
|
|
headers.Add("OktatasiAzonosito", oktatasiAzonosito);
|
|
|
|
var response = Get(relativeUri, headers);
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
return JsonConvert.DeserializeObject<bool>(response.Result);
|
|
}
|
|
|
|
if (response.Exception != null)
|
|
{
|
|
throw new HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonositoResponseException(ErrorResource.SikertelenHasPalyazatMasikIntezmenyByOktatasiAzonosito, response.Exception);
|
|
}
|
|
var exception = new HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonositoApaczaiHibauzenetException();
|
|
exception.Data.Add("HasPalyazatMasikIntezmenyByOktatasiAzonositoHiba", GetApaczaiHibaUzenetFromHibaResponse(response.Result, ErrorResource.SikertelenHasPalyazatMasikIntezmenyByOktatasiAzonosito));
|
|
throw exception;
|
|
}
|
|
|
|
throw new SikertelenAccessTokenLekeresException(ErrorResource.SikertelenHasPalyazatMasikIntezmenyByOktatasiAzonosito);
|
|
}
|
|
|
|
public GetTokenResponse GetToken()
|
|
{
|
|
return GetToken(kgrClientConfiguration.GetTokenRequestParameters());
|
|
}
|
|
|
|
private GetTokenResponse GetToken(Dictionary<string, string> tokenRequestParameters)
|
|
{
|
|
return ExceptionLogger(() =>
|
|
{
|
|
BaseUrl = kgrClientConfiguration.IDPUrl;
|
|
var relativeUri = "/connect/token";
|
|
|
|
var json = JsonConvert.SerializeObject(tokenRequestParameters);
|
|
var response = Post(relativeUri, HeaderExtension.GetFormUrlEncodedHeader(), tokenRequestParameters);
|
|
|
|
if (response.StatusCode == HttpStatusCode.OK)
|
|
{
|
|
var successResponse = JsonConvert.DeserializeObject<GetTokenSuccessResponse>(response.Result);
|
|
return new GetTokenResponse(successResponse.AccessToken, successResponse.ExpiresIn);
|
|
}
|
|
|
|
var failureResponse = JsonConvert.DeserializeObject<GetTokenFailureResponse>(response.Result);
|
|
return new GetTokenResponse(failureResponse.Error);
|
|
});
|
|
}
|
|
|
|
private T ExceptionLogger<T>(Func<T> action) where T : IResponse, new()
|
|
{
|
|
try
|
|
{
|
|
return action();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SDAServer.Instance.Logger.ExceptionThrown(ex);
|
|
|
|
return (T)Activator.CreateInstance(typeof(T), ExceptionUtil.ExceptionToString(ex));
|
|
}
|
|
}
|
|
|
|
private static ApaczaiHibaResponseModel GetApaczaiHibaUzenetFromHibaResponse(string responseJSON, string prefix)
|
|
{
|
|
return GetHibaUzenetFromHibaResponse<ApaczaiHibaResponseModel, ApaczaiHibaModel>(responseJSON, prefix, ErrorResource.KerjukEllenorizdAMegadottAdatokat);
|
|
}
|
|
|
|
private static IntezmenyiBeszerzesHibaResponseModel GetIntezmenyiBeszerzesHibaUzenetFromHibaResponse(string responseJSON, string prefix)
|
|
{
|
|
return GetHibaUzenetFromHibaResponse<IntezmenyiBeszerzesHibaResponseModel, IntezmenyiBeszerzesHibaModel>(responseJSON, prefix);
|
|
}
|
|
|
|
private static T GetHibaUzenetFromHibaResponse<T, TU>(string responseJSON, string prefix, string uzenetPost = null)
|
|
where T : BaseHibaResponseModel, new()
|
|
where TU : BaseHibaModel, new()
|
|
{
|
|
var hibaResponseModel = new T
|
|
{
|
|
Uzenet = prefix,
|
|
};
|
|
|
|
var hiba = JsonConvert.DeserializeObject<TU>(responseJSON);
|
|
if (hiba.ValidationResult != null)
|
|
{
|
|
var sb = new StringBuilder();
|
|
var tiltasok = hiba.ValidationResult.Tiltasok.Select(x => x.Uzenet);
|
|
var figyelmeztetesek = hiba.ValidationResult.Figyelmeztetesek.Select(x => x.Uzenet);
|
|
var engedelyezettek = hiba.ValidationResult.Engedelyezettek.Select(x => x.Uzenet);
|
|
var megjelenitendoHibak = tiltasok.Union(figyelmeztetesek).Union(engedelyezettek);
|
|
sb.Append(string.Join("<br />", megjelenitendoHibak));
|
|
//NOTE: ha meg akarjuk a felületen jeleníteni: hibaResponseModel.NemMegjelenitendoHiba = sb.ToString();
|
|
hibaResponseModel.NemMegjelenitendoHiba = sb.ToString();
|
|
}
|
|
if (hiba.Errors != null && hiba.Errors.Count > 0)
|
|
{
|
|
var sb = new StringBuilder();
|
|
foreach (var key in hiba.Errors.Keys)
|
|
{
|
|
sb.AppendLine($"{key}: {string.Join("<br />", hiba.Errors[key])}");
|
|
}
|
|
//NOTE: ha a validationresult-ot meg akarjuk a felületen jeleníteni: hibaResponseModel.NemMegjelenitendoHiba == sb.ToString();
|
|
hibaResponseModel.NemMegjelenitendoHiba += sb.ToString();
|
|
hibaResponseModel.Uzenet = hibaResponseModel.Uzenet.Substring(0, hibaResponseModel.Uzenet.Length - 1) + (string.IsNullOrWhiteSpace(uzenetPost) ? "" : uzenetPost);
|
|
}
|
|
|
|
return hibaResponseModel;
|
|
}
|
|
|
|
}
|
|
}
|