|
- 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 importer
- {
- public class RESTService
- {
- private string _baseUrl = Global.ServiceUrl;
- private HttpClient _httpClient;
- public string BaseUrl { get { return _baseUrl; } set { _baseUrl = value; } }
-
- public RESTService()
- {
-
- }
- public RESTService(string endPoint, Dictionary<string, string> parameters)
- {
- _baseUrl = _baseUrl + "/" + endPoint;
- foreach (KeyValuePair<string, string> 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<string, string> 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<T>(bool single, string endpoint, Dictionary<string, string> parameters = null)
- {
- RESTResponse<T> rest = new RESTResponse<T>();
- string url = _baseUrl + "/" + endpoint + "/";
- if (parameters != null)
- {
- foreach (KeyValuePair<string, string> 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<RESTResponse<T>>(response.Content);
- return rest.data;
- }
- public T PostRest<T>(string json, string endpoint)
- {
- RESTResponse<T> rest = new RESTResponse<T>();
- 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<RESTResponse<T>>(response.Content);
- return rest.data;
- }
- public T PostRest<T>(string json, string endpoint, Dictionary<string, string> parameters)
- {
- RESTResponse<T> rest = new RESTResponse<T>();
- string url = _baseUrl + "/" + endpoint + "/";
- foreach (KeyValuePair<string, string> 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<RESTResponse<T>>(response.Content);
- return rest.data;
- }
- public List<T> RestGet<T>(string endpoint, Dictionary<string, string> parameters = null)
- {
- RESTResponse<List<T>> rest = new RESTResponse<List<T>>();
- string url = _baseUrl + "/" + endpoint + "/";
- if (parameters != null)
- {
- foreach (KeyValuePair<string, string> 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<RESTResponse<List<T>>>(response.Content);
- List<T> list = new List<T>();
- list.AddRange(rest.data);
- return list;
- }
- }
- }
|