Replacement for JDIS Importer
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

136 строки
5.1 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using System.Net.Http;
  6. using System.Net.Http.Headers;
  7. using RestSharp;
  8. namespace jdis_import.RESTObjects
  9. {
  10. public class RESTService
  11. {
  12. private string _baseUrl = @"http://servicesbrandt.rpmindustries.com:8081";
  13. private HttpClient _httpClient;
  14. public RESTService()
  15. {
  16. }
  17. public RESTService(string endPoint, Dictionary<string, string> parameters)
  18. {
  19. _baseUrl = _baseUrl + "/" + endPoint;
  20. foreach (KeyValuePair<string, string> kvp in parameters)
  21. {
  22. _baseUrl = _baseUrl + "/" + kvp.Key;
  23. if (!string.IsNullOrEmpty(kvp.Value))
  24. _baseUrl = _baseUrl + "/" + kvp.Value;
  25. }
  26. _httpClient = new HttpClient(new HttpClientHandler
  27. {
  28. UseCookies = true,
  29. CookieContainer = new System.Net.CookieContainer()
  30. })
  31. {
  32. BaseAddress = new Uri(_baseUrl),
  33. DefaultRequestHeaders = { Accept = { MediaTypeWithQualityHeaderValue.Parse("application/json") } }
  34. };
  35. }
  36. public string RestGet(string endpoint, Dictionary<string, string> parameters = null)
  37. {
  38. string url = _baseUrl + "/" + endpoint + '/';
  39. RestClient client = new RestClient(url);
  40. RestRequest request = new RestRequest(endpoint, Method.Get);
  41. request.AddHeader("Accept", "application/json");
  42. request.Method = Method.Get;
  43. RestResponse response = client.Execute(request);
  44. return response.Content;
  45. }
  46. public T RestGet<T>(bool single, string endpoint, Dictionary<string, string> parameters = null)
  47. {
  48. RESTResponse<T> rest = new RESTResponse<T>();
  49. string url = _baseUrl + "/" + endpoint + "/";
  50. if (parameters != null)
  51. {
  52. foreach (KeyValuePair<string, string> kvp in parameters)
  53. {
  54. url = url + kvp.Key + "/" + kvp.Value;
  55. }
  56. }
  57. RestClient client = new RestClient(url);
  58. RestRequest request = new RestRequest();
  59. request.AddHeader("Accept", "application/json");
  60. request.Method = Method.Get;
  61. RestResponse response = client.Execute(request);
  62. rest = Deserialize.FromJson<RESTResponse<T>>(response.Content);
  63. return rest.data;
  64. }
  65. public T PostRest<T>(string json, string endpoint)
  66. {
  67. RESTResponse<T> rest = new RESTResponse<T>();
  68. string url = _baseUrl + "/" + endpoint + "/";
  69. RestClient client = new RestClient(url);
  70. Console.WriteLine();
  71. Console.WriteLine();
  72. Console.WriteLine();
  73. Console.WriteLine(json);
  74. RestRequest request = new RestRequest();
  75. request.Method = Method.Post;
  76. request.RequestFormat = DataFormat.Json;
  77. request.AddBody(json);
  78. request.AddHeader("Accept", "application/json");
  79. RestResponse response = client.Execute(request);
  80. Console.WriteLine();
  81. Console.WriteLine();
  82. Console.WriteLine(response.Content);
  83. rest = Deserialize.FromJson<RESTResponse<T>>(response.Content);
  84. return rest.data;
  85. }
  86. public T PostRest<T>(string json, string endpoint, Dictionary<string, string> parameters)
  87. {
  88. RESTResponse<T> rest = new RESTResponse<T>();
  89. string url = _baseUrl + "/" + endpoint + "/";
  90. foreach (KeyValuePair<string, string> kvp in parameters)
  91. {
  92. url = url + kvp.Key + "/" + kvp.Value;
  93. }
  94. RestClient client = new RestClient(url);
  95. RestRequest request = new RestRequest(url, Method.Post);
  96. request.AddBody(json);
  97. request.AddHeader("Accept", "application/json");
  98. RestResponse response = client.Execute(request);
  99. rest = Deserialize.FromJson<RESTResponse<T>>(response.Content);
  100. return rest.data;
  101. }
  102. public List<T> RestGet<T>(string endpoint, Dictionary<string, string> parameters = null)
  103. {
  104. RESTResponse<List<T>> rest = new RESTResponse<List<T>>();
  105. string url = _baseUrl + "/" + endpoint + "/";
  106. if (parameters != null)
  107. {
  108. foreach (KeyValuePair<string, string> kvp in parameters)
  109. {
  110. url = url + kvp.Key + "/" + kvp.Value;
  111. }
  112. }
  113. RestClient client = new RestClient(url);
  114. RestRequest request = new RestRequest();
  115. request.Method = Method.Get;
  116. request.AddHeader("Accept", "application/json");
  117. request.Method = Method.Get;
  118. RestResponse response = client.Execute(request);
  119. rest = Deserialize.FromJson<RESTResponse<List<T>>>(response.Content);
  120. List<T> list = new List<T>();
  121. list.AddRange(rest.data);
  122. return list;
  123. }
  124. }
  125. }