diff --git a/Controllers/API/APIInterface.cs b/Controllers/API/APIInterface.cs new file mode 100644 index 0000000..bfefc8f --- /dev/null +++ b/Controllers/API/APIInterface.cs @@ -0,0 +1,80 @@ +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; +using System.Net.Http; + +namespace EFB.Controllers.API +{ + public class APIInterface + { + private HttpClient HttpClient { get; set; } + + public async Task Get(string Endpoint, Dictionary Headers){ + + this.HttpClient = new HttpClient(); + + this.HttpClient.DefaultRequestHeaders.Clear(); + + foreach (var Header in Headers) + { + this.HttpClient.DefaultRequestHeaders.Add(Header.Key, Header.Value); + } + + if (!Form.FormAuthenticator.ValidateEndpoint(Endpoint)) + { + var pendingResult = this.HttpClient.GetAsync(Endpoint); + + var result = await pendingResult; + + string resultString = result.Content.ReadAsStringAsync().Result; + + return JsonConvert.DeserializeObject(resultString); + + }else{ + + T empty = default(T); + + return empty; + + } + + } + + public async Task Post(string Endpoint, Dictionary Headers, object Body){ + + this.HttpClient = new HttpClient(); + + this.HttpClient.DefaultRequestHeaders.Clear(); + + foreach (var Header in Headers) + { + this.HttpClient.DefaultRequestHeaders.Add(Header.Key, Header.Value); + } + + StringContent content = new StringContent(JsonConvert.SerializeObject(Body), Encoding.UTF8, "application/json"); + + if (!Form.FormAuthenticator.ValidateEndpoint(Endpoint)) + { + var pendingResult = this.HttpClient.PostAsync(Endpoint, content); + + var result = await pendingResult; + + string resultString = result.Content.ReadAsStringAsync().Result; + + return JsonConvert.DeserializeObject(resultString); + + }else{ + + T empty = default(T); + + return empty; + + } + + + } + + + } +} \ No newline at end of file diff --git a/Controllers/FormAuthenticator/FormAuthenticator.cs b/Controllers/Form/FormAuthenticator.cs similarity index 96% rename from Controllers/FormAuthenticator/FormAuthenticator.cs rename to Controllers/Form/FormAuthenticator.cs index 7038e8e..d9cc4f2 100644 --- a/Controllers/FormAuthenticator/FormAuthenticator.cs +++ b/Controllers/Form/FormAuthenticator.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -namespace EFB.Controllers.FormAuthenticator +namespace EFB.Controllers.Form { public static class FormAuthenticator { diff --git a/EFB.csproj b/EFB.csproj index 842a770..1afd1da 100644 --- a/EFB.csproj +++ b/EFB.csproj @@ -1,7 +1,8 @@ - net5.0 - - + + + + \ No newline at end of file