using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Net.Http; using System.Net.Http.Headers; using RestSharp; namespace jdis_import.RESTObjects { public class RESTService { private string _baseUrl = @"http://servicesbrandt.rpmindustries.com:8081"; private HttpClient _httpClient; public string BaseUrl { get { return _baseUrl; } set { _baseUrl = value; } } public RESTService() { } public RESTService(string endPoint, Dictionary parameters) { _baseUrl = _baseUrl + "/" + endPoint; foreach (KeyValuePair kvp in parameters) { _baseUrl = _baseUrl + "/" + kvp.Key; if (!string.IsNullOrEmpty(kvp.Value)) _baseUrl = _baseUrl + "/" + kvp.Value; } _httpClient = new HttpClient(new HttpClientHandler { UseCookies = true, CookieContainer = new System.Net.CookieContainer() }) { BaseAddress = new Uri(_baseUrl), DefaultRequestHeaders = { Accept = { MediaTypeWithQualityHeaderValue.Parse("application/json") } } }; } public string RestGet(string endpoint, Dictionary parameters = null) { string url = _baseUrl + "/" + endpoint + '/'; RestClient client = new RestClient(url); RestRequest request = new RestRequest(endpoint, Method.Get); request.AddHeader("Accept", "application/json"); request.Method = Method.Get; RestResponse response = client.Execute(request); return response.Content; } public T RestGet(bool single, string endpoint, Dictionary parameters = null) { RESTResponse rest = new RESTResponse(); string url = _baseUrl + "/" + endpoint + "/"; if (parameters != null) { foreach (KeyValuePair kvp in parameters) { url = url + kvp.Key + "/" + kvp.Value; } } RestClient client = new RestClient(url); RestRequest request = new RestRequest(); request.AddHeader("Accept", "application/json"); request.Method = Method.Get; RestResponse response = client.Execute(request); rest = Deserialize.FromJson>(response.Content); return rest.data; } public T PostRest(string json, string endpoint) { RESTResponse rest = new RESTResponse(); string url = _baseUrl + "/" + endpoint + "/"; RestClient client = new RestClient(url); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(json); RestRequest request = new RestRequest(); request.Method = Method.Post; request.RequestFormat = DataFormat.Json; request.AddBody(json); request.AddHeader("Accept", "application/json"); RestResponse response = client.Execute(request); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(response.Content); rest = Deserialize.FromJson>(response.Content); return rest.data; } public T PostRest(string json, string endpoint, Dictionary parameters) { RESTResponse rest = new RESTResponse(); string url = _baseUrl + "/" + endpoint + "/"; foreach (KeyValuePair kvp in parameters) { url = url + kvp.Key + "/" + kvp.Value; } RestClient client = new RestClient(url); RestRequest request = new RestRequest(url, Method.Post); request.AddBody(json); request.AddHeader("Accept", "application/json"); RestResponse response = client.Execute(request); rest = Deserialize.FromJson>(response.Content); return rest.data; } public List RestGet(string endpoint, Dictionary parameters = null) { RESTResponse> rest = new RESTResponse>(); string url = _baseUrl + "/" + endpoint + "/"; if (parameters != null) { foreach (KeyValuePair kvp in parameters) { url = url + kvp.Key + "/" + kvp.Value; } } RestClient client = new RestClient(url); RestRequest request = new RestRequest(); request.Method = Method.Get; request.AddHeader("Accept", "application/json"); request.Method = Method.Get; RestResponse response = client.Execute(request); rest = Deserialize.FromJson>>(response.Content); List list = new List(); list.AddRange(rest.data); return list; } } }