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

View File

@@ -0,0 +1,10 @@
namespace Kreta.Client.KGR.Configuration
{
public interface IKGRClientConfiguration
{
string IDPUrl { get; }
string KGRUrl { get; }
string PrivateClientId { get; }
string PrivateClientSecret { get; }
}
}

View File

@@ -0,0 +1,19 @@
using System.Configuration;
namespace Kreta.Client.KGR.Configuration
{
public class KGRClientConfiguration : ConfigurationSection, IKGRClientConfiguration
{
[ConfigurationProperty(nameof(IDPUrl), IsRequired = true)]
public string IDPUrl => (string)base[nameof(IDPUrl)];
[ConfigurationProperty(nameof(KGRUrl), IsRequired = true)]
public string KGRUrl => (string)base[nameof(KGRUrl)];
[ConfigurationProperty(nameof(PrivateClientId), IsRequired = true)]
public string PrivateClientId => (string)base[nameof(PrivateClientId)];
[ConfigurationProperty(nameof(PrivateClientSecret), IsRequired = true)]
public string PrivateClientSecret => (string)base[nameof(PrivateClientSecret)];
}
}

View File

@@ -0,0 +1,7 @@
namespace Kreta.Client.KGR.Constant
{
internal static class GrantType
{
public const string ClientCredentials = "client_credentials";
}
}

View File

@@ -0,0 +1,7 @@
namespace Kreta.Client.KGR.Constant
{
internal static class Scope
{
public const string Private = "kreta-kgr2-webapi.public";
}
}

View File

@@ -0,0 +1,10 @@
namespace Kreta.Client.KGR.Constant
{
internal static class TokenRequest
{
public const string GrantType = "grant_type";
public const string ClientId = "client_id";
public const string ClientSecret = "client_secret";
public const string Scope = "scope";
}
}

View File

@@ -0,0 +1,15 @@
using System;
namespace Kreta.Client.KGR.Exceptions
{
public class HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonositoResponseException : ApplicationException
{
public HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonositoResponseException(string message, Exception innerException) : base(message, innerException)
{
}
}
public class HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonositoApaczaiHibauzenetException : ApplicationException
{
}
}

View File

@@ -0,0 +1,11 @@
using System;
namespace Kreta.Client.KGR.Exceptions
{
public class SikertelenAccessTokenLekeresException : ApplicationException
{
public SikertelenAccessTokenLekeresException(string message) : base(message)
{
}
}
}

View File

@@ -0,0 +1,20 @@
using System.Collections.Generic;
using Kreta.Client.KGR.Configuration;
using Kreta.Client.KGR.Constant;
namespace Kreta.Client.KGR.Extension
{
internal static class ClientConfigurationExtension
{
public static Dictionary<string, string> GetTokenRequestParameters(this IKGRClientConfiguration kgrClientConfiguration)
{
return new Dictionary<string, string>
{
{ TokenRequest.GrantType, GrantType.ClientCredentials },
{ TokenRequest.ClientId, kgrClientConfiguration.PrivateClientId },
{ TokenRequest.ClientSecret, kgrClientConfiguration.PrivateClientSecret },
{ TokenRequest.Scope, Scope.Private },
};
}
}
}

View File

@@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace Kreta.Client.KGR.Extension
{
internal static class HeaderExtension
{
public static Dictionary<string, string> GetAuthorizationHeaderWithMulitpartFrom(this string token)
=> new Dictionary<string, string>
{
{ "Content-Type", "multipart/form-data" },
{ "Authorization", $"Bearer {token}" },
};
public static Dictionary<string, string> GetAuthorizationHeaderWithJson(this string token, string intezmenyGuid)
=> new Dictionary<string, string>
{
{ "Content-Type", "application/json" },
{ "Authorization", $"Bearer {token}" },
{ "IntezmenyId", $"{intezmenyGuid}" }
};
public static Dictionary<string, string> GetAuthorizationHeaderWithJson(this string token, string intezmenyGuid, string oktatasiAzonosito, string idpEgyediazonosito)
=> new Dictionary<string, string>
{
{ "Content-Type", "application/json" },
{ "Authorization", $"Bearer {token}" },
{ "IntezmenyId", $"{intezmenyGuid}" },
{ "OktatasiAzonosito", $"{oktatasiAzonosito}" },
{ "IDPEgyediazonosito", $"{idpEgyediazonosito}" }
};
public static Dictionary<string, string> GetAuthorizationHeaderWithJson(this string token)
=> new Dictionary<string, string>
{
{ "Content-Type", "application/json" },
{ "Authorization", $"Bearer {token}" } };
public static Dictionary<string, string> GetFormUrlEncodedHeader()
=> new Dictionary<string, string>
{
{ "Content-Type", "application/x-www-form-urlencoded" },
};
public static Dictionary<string, string> GetEszkozQueryString(this string intezmenyAzonosito, string sztsz)
=> new Dictionary<string, string>
{
{ "intezmenyAzonosito", $"{intezmenyAzonosito}" },
{ "sztsz", $"{sztsz}" }
};
}
}

View File

@@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using Kreta.Client.KGR.Model;
using Kreta.Client.KGR.Request;
namespace Kreta.Client.KGR
{
public interface IKGRClient
{
List<EszkozModel> KGREszkozList(EszkozHeaderRequest request);
List<ProjektModel> ProjektList(ProjektHeaderRequest request);
List<ProjektModel> ProjektJelentkezes(ProjektJelentkezesModel model);
ApaczaiPalyazatModel CreateApaczaiPalyazat(ApaczaiPalyazatFelvetelRequest model);
ApaczaiPalyazatModel PalyazatAdategyeztetes(ApaczaiPalyazatFelvetelRequest model);
ApaczaiPalyazatModel GetApaczaiPalyazat(int tanevSorszam, Guid tanuloIdpEgyediAzonosito);
List<ApaczaiPalyazatDokumentumModel> GetApaczaiPalyazatDokumentumai(int tanevSorszam, Guid tanuloIdpEgyediAzonosito);
byte[] GetApaczaiPalyazatDokumentuma(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, Guid fileId);
bool PostApaczaiPalyazatDokumentumBinaryFiles(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, ApaczaiUploadFileRequestBinary model);
ApaczaiPalyazatModel GetApaczaiVisszavonas(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, bool retrieve = false);
List<ApaczaiIgenylesModel> GetIgenylesekModelList(int tanevSorszam, Guid intezmenyEgyediAzonosito);
List<ApaczaiKifizetesModel> GetKifizetesekModelList(int tanevSorszam);
bool DeleteApaczaiPalyazatDokumentuma(int tanevSorszam, Guid tanuloIdpEgyediAzonosito, Guid fileId);
bool Fellebbezes(Guid tanuloIdpEgyediAzonosito, int tanevSorszam, string indoklas);
List<ApaczaiPalyazatTortenetModel> GetApaczaiPalyazatTortenet(int tanevSorszam, Guid tanuloIdpEgyediAzonosito);
List<IntezmenyiBeszerzesModel> GetIntezmenyiBeszerzesList(Guid intezmenyEgyediAzonosito, int? tanevSorszam);
List<IntezmenyiBeszerzesModel> GetIntezmenyiBeszerzesExport(Guid intezmenyEgyediAzonosito, int? tanevSorszam);
IntezmenyiBeszerzesModel SaveIntezmenyiBeszerzes(IntezmenyiBeszerzesModel model);
IntezmenyiBeszerzesModel GetIntezmenyiBeszerzes(Guid intezmenyEgyediAzonosito, int id);
List<IntezmenyiBeszerzesAdatszotarAllapotModel> GetIntezmenyiBeszerzesAdatszotarAllapotList();
List<IntezmenyiBeszerzesAdatszotarTargyModel> GetIntezmenyiBeszerzesAdatszotarTargyList();
IntezmenyiBeszerzesVisszavonasModel PostIntezmenyiBeszerzesVisszavonas(IntezmenyiBeszerzesVisszavonasRequest request);
bool HasElfogadottPalyazatMasikIntezmenyByOktatasiAzonosito(Guid intezmenyEgyediAzonosito, int tanevSorszam, string oktatasiAzonosito);
}
}

View File

@@ -0,0 +1,805 @@
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;
}
}
}

View File

@@ -0,0 +1,6 @@
namespace Kreta.Client.KGR.Model
{
public class ApaczaiHibaModel : BaseHibaModel
{
}
}

View File

@@ -0,0 +1,11 @@
using System;
using System.Runtime.Serialization;
namespace Kreta.Client.KGR.Model
{
[Serializable]
[DataContract]
public class ApaczaiHibaResponseModel : BaseHibaResponseModel
{
}
}

View File

@@ -0,0 +1,19 @@
using System;
namespace Kreta.Client.KGR.Model
{
public class ApaczaiIgenylesModel
{
public int Id { get; set; }
public int StatuszId { get; set; }
public string StatuszNev { get; set; }
public DateTime Letrehozva { get; set; }
public double Osszeg { get; set; }
public ApaczaiPalyazoModel Palyazo { get; set; }
}
}

View File

@@ -0,0 +1,6 @@
namespace Kreta.Client.KGR.Model
{
public class ApaczaiKifizetesModel
{
}
}

View File

@@ -0,0 +1,35 @@
using System;
using Kreta.Client.KGR.Request;
namespace Kreta.Client.KGR.Model
{
public class ApaczaiPalyazatModel
{
public int Id { get; set; }
public ApaczaiPalyazatPalyazo Palyazo { get; set; }
public int TanevId { get; set; }
public int StatuszId { get; set; }
public string StatuszNev { get; set; }
public DateTime? Letrehozva { get; set; }
public string StatuszKomment { get; set; }
public string EllenorzesrolAdategyeztetesreVisszakuldveKomment { get; set; }
public string FelulvizsgalatrolAdategyeztetesreVisszakuldveKomment { get; set; }
public string StatuszIktatasiSzam { get; set; }
public string StatuszErkeztetesiSzam { get; set; }
public DateTime? FellebbezesHatarido { get; set; }
public DateTime HatranyosHelyzetHatarozatDatum { get; set; }
}
public class ApaczaiPalyazatDokumentumModel
{
public int Id { get; set; }
public Guid IdpEgyediAzonosito { get; set; }
public Guid FileServiceEgyediAzonosito { get; set; }
public string FileServiceUtvonal { get; set; }
public int ApaczaiFileTipusId { get; set; }
public string ApaczaiFileTipusnev { get; set; }
public int Meret { get; set; }
public DateTime Letrehozva { get; set; }
public string EszaTipus { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
namespace Kreta.Client.KGR.Model
{
public class ApaczaiPalyazatTortenetModel
{
public string Cim { get; set; }
public DateTime Datum { get; set; }
public string Megjegyzes { get; set; }
public int StatuszId { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
namespace Kreta.Client.KGR.Model
{
public class ApaczaiPalyazoModel
{
public Guid IdpEgyediAzonosito { get; set; }
public string OktatasiAzonosito { get; set; }
public string CsaladiNev { get; set; }
public string Utonev { get; set; }
public DateTime SzuletesiIdo { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace Kreta.Client.KGR.Model
{
public class BaseHibaModel
{
public string Exception { get; set; }
public BaseHibaValidationResult ValidationResult { get; set; }
public string CorrelationId { get; set; }
public string Type { get; set; }
public string Title { get; set; }
public string Status { get; set; }
public string Detail { get; set; }
public string Instance { get; set; }
public Dictionary<string, List<string>> Errors { get; set; }
}
public class BaseHibaValidationResult
{
public List<BaseHibaValidationResultDetail> Tiltasok { get; set; }
public List<BaseHibaValidationResultDetail> Figyelmeztetesek { get; set; }
public List<BaseHibaValidationResultDetail> Engedelyezettek { get; set; }
}
public class BaseHibaValidationResultDetail
{
public int? Id { get; set; }
public string Nev { get; set; }
public string Uzenet { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Runtime.Serialization;
namespace Kreta.Client.KGR.Model
{
[Serializable]
[DataContract]
public class BaseHibaResponseModel
{
[DataMember]
public string Uzenet { get; set; }
[DataMember]
public string MegjelenitendoHiba { get; set; }
[DataMember]
public string NemMegjelenitendoHiba { get; set; }
}
}

View File

@@ -0,0 +1,22 @@
using System;
namespace Kreta.Client.KGR.Model
{
public class EszkozModel
{
public string Vallalat { get; set; }
public string VallalatNev { get; set; }
public int FenntartoAzonosito { get; set; }
public string FenntartoNev { get; set; }
public string IntezmenyAzonosito { get; set; }
public string IntezmenyNev { get; set; }
public int AlkalmazottId { get; set; }
public string AlkalmazottNev { get; set; }
public string SztszAzonosito { get; set; }
public string Leltarszam { get; set; }
public string GyariSzam { get; set; }
public string Megnevezes { get; set; }
public DateTime? AktivalasDatum { get; set; }
public DateTime? DeaktivalasDatum { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
namespace Kreta.Client.KGR.Model
{
public class IntezmenyiBeszerzesAdatszotarAllapotModel
{
public int Id { get; set; }
public string Nev { get; set; }
public int Sorszam { get; set; }
public int KategoriaId { get; set; }
public string SzinKod { get; set; }
public bool Aktiv { get; set; }
public bool Modosithato { get; set; }
public bool Torolheto { get; set; }
public bool Lathato { get; set; }
public string RovidNev { get; set; }
public string AliasNev { get; set; }
public string Leiras { get; set; }
public string Megjegyzes { get; set; }
public string MimeTipus { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
namespace Kreta.Client.KGR.Model
{
public class IntezmenyiBeszerzesAdatszotarTargyModel
{
public int Id { get; set; }
public string Nev { get; set; }
public int Sorszam { get; set; }
public int KategoriaId { get; set; }
public string SzinKod { get; set; }
public bool Aktiv { get; set; }
public bool Modosithato { get; set; }
public bool Torolheto { get; set; }
public bool Lathato { get; set; }
public string RovidNev { get; set; }
public string AliasNev { get; set; }
public string Leiras { get; set; }
public string Megjegyzes { get; set; }
public string MimeTipus { get; set; }
}
}

View File

@@ -0,0 +1,6 @@
namespace Kreta.Client.KGR.Model
{
public class IntezmenyiBeszerzesHibaModel : BaseHibaModel
{
}
}

View File

@@ -0,0 +1,11 @@
using System;
using System.Runtime.Serialization;
namespace Kreta.Client.KGR.Model
{
[Serializable]
[DataContract]
public class IntezmenyiBeszerzesHibaResponseModel : BaseHibaResponseModel
{
}
}

View File

@@ -0,0 +1,26 @@
namespace Kreta.Client.KGR.Model
{
public class IntezmenyiBeszerzesModel
{
public int? Id { get; set; }
public int? TargyId { get; set; }
public string TargyNev { get; set; }
public double VarhatoEllenertekBrutto { get; set; }
public string IdpEgyediAzonosito { get; set; }
public string EloTag { get; set; }
public string CsaladiNev { get; set; }
public string Utonev { get; set; }
public int? TanevId { get; set; }
public string TanevNev { get; set; }
public int AllapotId { get; set; }
public string AllapotNev { get; set; }
public string Sorszam { get; set; }
public string Leiras { get; set; }
public string VisMajorIndok { get; set; }
public string OktatasiAzonosito { get; set; }
public string IntezmenyEgyediAzonosito { get; set; }
public string LetrehozoEmail { get; set; }
public string ModositasiKerelem { get; set; }
public string ElutasitasOka { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace Kreta.Client.KGR.Model
{
public class IntezmenyiBeszerzesVisszavonasModel
{
public int Id { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using System;
namespace Kreta.Client.KGR.Model
{
public class ProjektJelentkezesModel
{
public Guid IntezmenyId { get; set; }
public string OktatasiAzonosito { get; set; }
public Guid IdpEgyediazonosito { get; set; }
public bool Retrieve { get; set; }
public string AlkalmazottNev { get; set; }
public int ProjektId { get; set; }
public int AlkalmazottId { get; set; }
public bool IsJelentkezett { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
namespace Kreta.Client.KGR.Model
{
public class ProjektModel
{
public int Id { get; set; }
public string Azonosito { get; set; }
public string Nev { get; set; }
public DateTime Kezdete { get; set; }
public DateTime Vege { get; set; }
public DateTime TSZTOMegkotesDatum { get; set; }
public bool Kerdoiv { get; set; }
public int Merfoldkovek { get; set; }
public int TeruletiHataly { get; set; }
public string TeruletiHatalyNev { get; set; }
public DateTime? JelentkezesHataridoKezdet { get; set; }
public DateTime? JelentkezesHataridoVeg { get; set; }
public bool IsJelentkezett { get; set; }
public bool IsVisszautasitott { get; set; }
public int? JelentkezokSzama { get; set; }
public bool IsElfogadott { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace Kreta.Client.KGR.Request
{
public class ApaczaiFellebbezesRequest
{
public string FellebbezesKomment { get; set; }
}
}

View File

@@ -0,0 +1,223 @@
using System;
namespace Kreta.Client.KGR.Request
{
public class ApaczaiPalyazatFelvetelRequest
{
public ApaczaiPalyazatFelvetelRequest()
{
Palyazo = new ApaczaiPalyazatPalyazo();
PalyazatMentor = new ApaczaiPalyazatMentor();
}
public ApaczaiPalyazatPalyazo Palyazo { get; set; }
public ApaczaiPalyazatMentor PalyazatMentor { get; set; }
public int TanevId { get; set; }
public int ModositoId { get; set; }
public string ModositoNev { get; set; }
public DateTime HatranyosHelyzetHatarozatDatum { get; set; }
}
public class ApaczaiPalyazatPalyazo
{
public ApaczaiPalyazatPalyazo()
{
Bankszamla = new ApaczaiPalyazatBankszamla();
AllandoElerhetoseg = new ApaczaiPalyazatElerhetoseg();
TartozkodasiElerhetoseg = new ApaczaiPalyazatElerhetoseg();
}
public Guid IdpEgyediAzonosito { get; set; }
public string OktatasiAzonosito { get; set; }
public string FenntartoAzonosito { get; set; }
public string FenntartoNev { get; set; }
public Guid IntezmenyEgyediAzonosito { get; set; }
public string IntezmenyNev { get; set; }
public string IntezmenyAzonosito { get; set; }
public string EloTag { get; set; }
public string CsaladiNev { get; set; }
public string Utonev { get; set; }
public string SzuletesiCsaladNev { get; set; }
public string SzuletesiUtonev { get; set; }
public string AnyjaSzuletesiCsaladiNev { get; set; }
public string AnyjaSzuletesiUtonev { get; set; }
public string Anyanyelv { get; set; }
public string SzuletesiOrszag { get; set; }
public string SzuletesiHely { get; set; }
public DateTime SzuletesiIdo { get; set; }
public string Allampolgarsag { get; set; }
public string Allampolgarsag2 { get; set; }
public ApaczaiPalyazatBankszamla Bankszamla { get; set; }
public ApaczaiPalyazatElerhetoseg AllandoElerhetoseg { get; set; }
public ApaczaiPalyazatElerhetoseg TartozkodasiElerhetoseg { get; set; }
public double? SzamitottAtlag { get; set; }
public double? KeziAtlag { get; set; }
public string AtlagKomment { get; set; }
public string TAJszam { get; set; }
public bool IsSzakkepzesenKivulrolJott { get; set; }
public string Osztaly { get; set; }
public string Evfolyam { get; set; }
}
public class ApaczaiPalyazatBankszamla
{
public string BankszamlaSzam { get; set; }
public string BankszamlaTulajdonosa { get; set; }
public string BankszamlaTulajdonosNeve { get; set; }
public string SzamlavezetoBank { get; set; }
}
public class ApaczaiPalyazatElerhetoseg
{
public string CimTipus { get; set; }
public string Orszag { get; set; }
public string Iranyitoszam { get; set; }
public string HelysegNev { get; set; }
public string KozteruletNev { get; set; }
public string KozteruletTipus { get; set; }
public string Hazszam { get; set; }
public string Emelet { get; set; }
public string Ajto { get; set; }
public string TelefonSzam { get; set; }
public string TelefonTipus { get; set; }
public string Emailcim { get; set; }
public string EmailTipus { get; set; }
}
public class ApaczaiPalyazatMentor
{
public ApaczaiPalyazatMentor()
{
Bankszamla = new ApaczaiPalyazatMentorBankszamla();
Elerhetoseg = new ApaczaiPalyazatMentorElerhetoseg();
}
public string FenntartoAzonosito { get; set; }
public string FenntartoNev { get; set; }
public string LegmagasabbSzintuFenntartoNev { get; set; }
public Guid IntezmenyEgyediAzonosito { get; set; }
public string IntezmenyNev { get; set; }
public string IntezmenyAzonosito { get; set; }
public string IntezmenyVezetoNev { get; set; }
public string OMKod { get; set; }
public ApaczaiPalyazatMentorBankszamla Bankszamla { get; set; }
public ApaczaiPalyazatMentorElerhetoseg Elerhetoseg { get; set; }
public Guid IdpEgyediAzonosito { get; set; }
public string OktatasiAzonosito { get; set; }
public string Nev { get; set; }
public string SzuletesiNev { get; set; }
public string SzuletesiHely { get; set; }
public DateTime SzuletesiIdo { get; set; }
public string AnyjaNeve { get; set; }
public string TAJszam { get; set; }
public string AdoazonositoJel { get; set; }
public string SzTSz { get; set; }
public int? NyugdijTipusId { get; set; }
public string NyugdijTipusNev { get; set; }
public DateTime? NyugdijKezdete { get; set; }
}
public class ApaczaiPalyazatMentorBankszamla
{
public string BankszamlaSzam { get; set; }
public string BankszamlaTulajdonosa { get; set; }
public string BankszamlaTulajdonosNeve { get; set; }
public string SzamlavezetoBank { get; set; }
}
public class ApaczaiPalyazatMentorElerhetoseg
{
public string CimTipus { get; set; }
public string Orszag { get; set; }
public string Iranyitoszam { get; set; }
public string HelysegNev { get; set; }
public string KozteruletNev { get; set; }
public string KozteruletTipus { get; set; }
public string Hazszam { get; set; }
public string Emelet { get; set; }
public string Ajto { get; set; }
public string TelefonSzam { get; set; }
public string TelefonTipus { get; set; }
public string Emailcim { get; set; }
public string EmailTipus { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Kreta.Client.KGR.Request
{
public class ApaczaiUploadFileRequest : BaseApaczaiUploadFileRequest
{
[JsonProperty("Content")]
public string Base64EncodedFile { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Kreta.Client.KGR.Request
{
public class ApaczaiUploadFileRequestBinary : BaseApaczaiUploadFileRequest
{
[JsonProperty("Content")]
public byte[] File { get; set; }
}
}

View File

@@ -0,0 +1,19 @@
using Newtonsoft.Json;
namespace Kreta.Client.KGR.Request
{
public class BaseApaczaiUploadFileRequest
{
[JsonProperty("FileNameWithExtension")]
public string PostedFileName { get; set; }
[JsonIgnore]
public string PostedFileContentType { get; set; }
[JsonProperty("FileTypeId")]
public int PostedFileCategory { get; set; }
[JsonProperty("ESZATipus")]
public string ApaczaiDokumentumTipus { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
namespace Kreta.Client.KGR.Request
{
public class EszkozHeaderRequest
{
public string IntezmenyGuid { get; set; }
public string IntezmenyAzonosito { get; set; }
public string Sztsz { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
namespace Kreta.Client.KGR.Request
{
public class IntezmenyiBeszerzesVisszavonasRequest
{
public int Id { get; set; }
public string IdpEgyediAzonosito { get; set; }
public string OktatasiAzonosito { get; set; }
public string IntezmenyEgyediAzonosito { get; set; }
public string EloTag { get; set; }
public string CsaladiNev { get; set; }
public string Utonev { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
namespace Kreta.Client.KGR.Request
{
public class ProjektHeaderRequest
{
public string IntezmenyGuid { get; set; }
public int AlkalmazottId { get; set; }
public string OktatasiAzonosito { get; set; }
public string AlkalmazottNev { get; set; }
public string IDPEgyediazonosito { get; set; }
}
}

View File

@@ -0,0 +1,10 @@
using Newtonsoft.Json;
namespace Kreta.Client.KGR.Response
{
internal class GetTokenFailureResponse
{
[JsonProperty("error")]
public string Error { get; set; }
}
}

View File

@@ -0,0 +1,46 @@
using System;
namespace Kreta.Client.KGR.Response
{
public class GetTokenResponse : IResponse
{
public GetTokenResponse() { }
public GetTokenResponse(string error)
{
if (string.IsNullOrWhiteSpace(error))
{
throw new ArgumentNullException(nameof(error));
}
Error = error;
}
public GetTokenResponse(string accessToken, int expiresIn)
{
if (string.IsNullOrWhiteSpace(accessToken))
{
throw new ArgumentNullException(nameof(accessToken));
}
if (expiresIn < 1)
{
throw new ArgumentOutOfRangeException(nameof(expiresIn));
}
IsSuccess = true;
AccessToken = accessToken;
ExpiresIn = expiresIn;
}
public bool IsSuccess { get; }
public string AccessToken { get; }
public int ExpiresIn { get; }
public string Error { get; }
public bool TryAgain { get; }
}
}

View File

@@ -0,0 +1,16 @@
using Newtonsoft.Json;
namespace Kreta.Client.KGR.Response
{
internal class GetTokenSuccessResponse
{
[JsonProperty(PropertyName = "access_token")]
public string AccessToken { get; set; }
[JsonProperty(PropertyName = "expires_in")]
public int ExpiresIn { get; set; }
[JsonProperty(PropertyName = "token_type")]
public string TokenType { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace Kreta.Client.KGR.Response
{
internal interface IResponse
{
bool IsSuccess { get; }
string Error { get; }
}
}