public async Task <BaseResultDTO> DeleteVacationAsync(Guid id, CancellationToken cancellationToken) { var token = await _identyApi.GetAuthorizationTokenAsync(); var parameters = new SharedContextParameters(_url, Method.DELETE, token) .AddUrlSegment("{id}", "id", id); return(await _apiContext.SendRequestAsync <BaseResultDTO>(parameters, cancellationToken)); }
public async Task <TResponse> SendRequestAsync <TResponse, TRequest>(SharedContextParameters parameters, TRequest bodyRequest, CancellationToken cancellationToken) where TRequest : class, new() where TResponse : class, new() { var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", parameters.Token); var httpRequest = new HttpRequestMessage(GetHttpMethod(parameters.Method), parameters.Url); if (bodyRequest != null) { httpRequest.Content = new StringContent(JsonConvert.SerializeObject(bodyRequest, new JsonSerializerSettings() { DateFormatString = ApiSettings.DateFormatString }), Encoding.UTF8, "application/json"); } if (!string.IsNullOrWhiteSpace(parameters.Resourse)) { var tempUrl = Path.Combine(parameters.Url, parameters.Resourse); foreach (var urlSegment in parameters.UrlSegments) { tempUrl = tempUrl.Replace("{" + urlSegment.Key + "}", urlSegment.Value); } httpRequest.RequestUri = new Uri(tempUrl); } var response = await client.SendAsync(httpRequest, cancellationToken); var contentString = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <TResponse>(contentString)); }
public async Task <TResponse> SendRequestAsync <TResponse, TBodyRequest>(SharedContextParameters parameters, TBodyRequest bodyRequest, CancellationToken cancellationToken) where TBodyRequest : class, new() where TResponse : class, new() { var client = new RestClient(parameters.Url) { Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator(parameters.Token, "Bearer") }; var jsonBody = JsonConvert.SerializeObject(bodyRequest); var request = new RestRequest(parameters.Method) .AddJsonBody(jsonBody) .AddUrlSegments(parameters.Resourse, parameters.UrlSegments); var response = await client.ExecuteTaskAsync(request, cancellationToken); if (response.StatusCode == HttpStatusCode.Unauthorized) { throw new AuthorizationException(Strings.NotActiveToken); } return(JsonConvert.DeserializeObject <TResponse>(response.Content)); }
public async Task <TResponse> SendRequestAsync <TResponse>(SharedContextParameters parameters, CancellationToken cancellationToken) where TResponse : class, new() { return(await SendRequestAsync <TResponse, object>(parameters, null, cancellationToken)); }