Facebook
From Perl Zebra, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 230
  1.                 public class ApiResponse<TResponse>
  2.                 {
  3.                         TResponse Response {get;set;}
  4.                         ApiMessageModel ErrorMessage {get;set;}
  5.                 }
  6.                
  7.                
  8.                
  9.                 private async Task<ApiResponse<TResult>> getModel<TResult>(UrlEnum url, String token)
  10.         {
  11.             var result = new ApiResponse<TResult>();
  12.  
  13. #pragma warning disable CS0618 // Type or member is obsolete
  14.             ServicePointManager.CertificatePolicy = new CustomCertificatePolicy();
  15. #pragma warning restore CS0618 // Type or member is obsolete
  16.  
  17.             _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
  18.             using(var response = await _httpClient.GetAsync(url.GetAttributeValue<UrlAttribute>().Url))
  19.                         {
  20.                                 switch (response.StatusCode)
  21.                                 {
  22.                                         case HttpStatusCode.OK: // 200
  23.                                                 result.Response = Deserialize<TResult>(await response.Content.ReadAsStringAsync());
  24.                                                 break;
  25.                                         case HttpStatusCode.BadRequest: // 400
  26.                                                 result.ErrorMessage = Deserialize<ApiMessageModel>(await response.Content.ReadAsStringAsync());
  27.                                                 break;
  28.                                         default:
  29.                                                 break;
  30.                                 }
  31.                                
  32.                                 return result;
  33.                         }
  34.         }
  35.  
  36.         private TResult Deserialize<TResult>(string json)
  37.                         => JsonConvert.DeserializeObject<TResult>(json);