Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. public async Task<object> GetAsync<T>(string uri, NamingStrategy namingStrategy)
  2. {
  3. using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, uri))
  4. {
  5. return await ProcessAsync<T>(requestMessage, namingStrategy);
  6. }
  7. }
  8.  
  9. public async Task<object> ProcessAsync<T>(HttpRequestMessage request, NamingStrategy namingStrategy)
  10. {
  11. if (!string.IsNullOrEmpty(AuthToken))
  12. {
  13. request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", AuthToken);
  14. }
  15. HttpResponseMessage response = await _client.SendAsync(request);
  16. if (response.IsSuccessStatusCode)
  17. {
  18. _logger.LogInformation("Request Succeeded");
  19. var dezerializerSettings = new JsonSerializerSettings
  20. {
  21. ContractResolver = new DefaultContractResolver
  22. {
  23. NamingStrategy = namingStrategy
  24. }
  25. };
  26. T responseModel = JsonConvert.DeserializeObject<T>(await response.Content.ReadAsStringAsync(), dezerializerSettings);
  27. return responseModel;
  28. }
  29. else
  30. {
  31. return await GetFailureResponseModel(response);
  32.  
  33. }
  34. }
  35.  
  36. public async Task<object> GetShops(string category)
  37. {
  38. _logger.LogInformation("ClubMatas outgoing request: {RequestName}", nameof(GetShops));
  39. return await _client.GetAsync<ShopsResponseModel>($"v2/shops?category={WebUtility.UrlEncode(category)}");
  40. }
  41.  
  42. public async Task<ActionResult<object>> GetShops([FromQuery(Name = "category")]string category)
  43. {
  44. var response = await _httpClient.GetShops(category);
  45. return ParseResponse<ShopsResponseModel>(response);
  46. }
  47.  
  48. protected ActionResult<object> ParseResponse<T>(object response)
  49. {
  50. if (response.GetType() == typeof(T))
  51. {
  52. return Ok(response);
  53. }
  54. else
  55. {
  56. return Error(response);
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement