public ApiClientResponse DeleteClient(int id) { var apiClents = new ApiClientResponse { ResponseType = -1, ResponseMessage = "Failed" }; var deleted = (new JukeBox.BLL.Account()).DeleteClient(id, 1); if (deleted) { var retVal = (new JukeBox.BLL.Account()).GetAllClient(); if (retVal != null) { apiClents.ResponseObject = new List <apiClient>(); foreach (var item in retVal) { var client = new apiClient(); client.Bind(item); apiClents.ResponseObject.Add(client); } apiClents.ResponseType = 1; apiClents.ResponseMessage = "Success"; } } return(apiClents); }
/// <summary> /// Executes the request and creates an response object /// </summary> /// <param name="request"></param> /// <returns></returns> public IApiClientResponse ExecuteRequest(IApiClientRequest request) { IApiClientResponse result = new ApiClientResponse(); try { HttpClient client = CreateClient(); var httpRequest = CreateHttpRequest(request); PrepareRequestHeaders(request, httpRequest); var contentType = GetContentTypeHeaderValue(request); PrepareRequestContent(request, httpRequest, contentType); // Set the timeout just prior to making the request to reduce the risk of unintended overrides client.Timeout = TimeSpan.FromSeconds(request.TimeoutInSeconds); using (HttpResponseMessage response = client.SendAsync(httpRequest).GetAwaiter().GetResult()) { result.Status = (int)response.StatusCode; result.StatusCode = (HttpStatusCode)(int)response.StatusCode; result.Headers = CreateHeaders(response.Headers, response.Content.Headers); result.Content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); return(result); } } finally { DisposeClient(); } }
/// <summary> /// Executes the request and creates an response object /// </summary> /// <param name="request"></param> /// <returns></returns> public IApiClientResponse ExecuteRequest(IApiClientRequest request) { IApiClientResponse result = new ApiClientResponse(); try { HttpClient client = CreateClient(); var httpRequest = CreateHttpRequest(request); const string contentTypeHeader = "content-type"; string contentType = null; foreach (var h in request.Headers) { //because the api keeps overriding the content type we have to find what we defined before IList <string> values; if (h.Key.Equals(contentTypeHeader, StringComparison.InvariantCultureIgnoreCase) && request.Headers.TryGetValue(h.Key, out values)) { contentType = values.First(); } httpRequest.Headers.TryAddWithoutValidation(h.Key, h.Value); } var multiPartContent = request as MultipartFormClientRequest; if (multiPartContent is null) // default string content behaviour { if (contentType != null) { httpRequest.Content = new StringContent(request.Content, Encoding.UTF8, contentType); } else { httpRequest.Content = new StringContent(request.Content); } } else // the new multipart content { httpRequest.Content = multiPartContent.MultipartContent; } // Set the timeout just prior to making the request to reduce the risk of unintended overrides client.Timeout = TimeSpan.FromSeconds(request.TimeoutInSeconds); using (HttpResponseMessage response = client.SendAsync(httpRequest).GetAwaiter().GetResult()) { result.Status = (int)response.StatusCode; result.StatusCode = (HttpStatusCode)(int)response.StatusCode; result.Headers = CreateHeaders(response.Headers, response.Content.Headers); result.Content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); return(result); } } finally { DisposeClient(); } }
public async Task ThenTheResponseShouldContainATemplate(NotificationType notificationType) { var templateResponse = await ApiClientResponse.GetResponses <NotificationTemplateResponse>(_context.Response.Content); templateResponse.Id.Should().BePositive(); templateResponse.Parameters.Should().NotBeNullOrWhiteSpace(); templateResponse.NotificationType.Should().Be((int)notificationType); templateResponse.NotifyTemplateId.Should().NotBeEmpty(); }
public void Then_Returns_Expected_Results() { var expectedReponse = ApiClientResponse.FirstOrDefault(); var expectedConfirmationText = string.Format(Confirmation.Section_Heading, EnumExtensions.GetEnumValue <TlevelReviewStatus>(expectedReponse.StatusId).ToString().ToLowerInvariant()); var expectedTlevelTitle = expectedReponse.TlevelTitle; ActualResult.Should().NotBeNull(); ActualResult.IsQueried.Should().Be(true); ActualResult.PathwayId.Should().Be(PathwayId); ActualResult.TlevelConfirmationText.Should().Be(expectedConfirmationText); ActualResult.TlevelTitle.Should().Be(expectedTlevelTitle); }
public void Then_Returns_Expected_Results() { ActualResult.Should().NotBeNull(); ActualResult.ProvidersSelectList.Should().NotBeNullOrEmpty(); ActualResult.ProvidersSelectList.Count.Should().Be(ApiClientResponse.Count); var expectedProviderResult = ApiClientResponse.FirstOrDefault(); var actualProviderDetailsResult = ActualResult.ProvidersSelectList.FirstOrDefault(); actualProviderDetailsResult.Should().NotBeNull(); actualProviderDetailsResult.Value.Should().Be(expectedProviderResult.Ukprn.ToString()); actualProviderDetailsResult.Text.Should().Be($"{expectedProviderResult.DisplayName} ({expectedProviderResult.Ukprn})"); }
public void Then_Returns_Expected_Results() { ActualResult.Should().NotBeNull(); ActualResult.Count().Should().Be(2); var expectedProviderDetailsResult = ApiClientResponse.FirstOrDefault(); var actualProviderDetailsResult = ActualResult.FirstOrDefault(); actualProviderDetailsResult.Should().NotBeNull(); actualProviderDetailsResult.ProviderId.Should().Be(expectedProviderDetailsResult.Id); actualProviderDetailsResult.DisplayName.Should().Be(expectedProviderDetailsResult.DisplayName); actualProviderDetailsResult.Ukprn.Should().Be(expectedProviderDetailsResult.Ukprn); }
public void Then_Returns_Expected_Results() { ActualResult.Should().NotBeNull(); ActualResult.CoreSelectList.Should().NotBeNullOrEmpty(); ActualResult.CoreSelectList.Count.Should().Be(ApiClientResponse.Count); var expectedCoreResult = ApiClientResponse.FirstOrDefault(); var actualCoreDetailsResult = ActualResult.CoreSelectList.FirstOrDefault(); actualCoreDetailsResult.Should().NotBeNull(); actualCoreDetailsResult.Value.Should().Be(expectedCoreResult.Code.ToString()); actualCoreDetailsResult.Text.Should().Be($"{expectedCoreResult.Name} ({expectedCoreResult.Code})"); }
/// <summary> /// Executes the request and creates an response object /// </summary> /// <param name="request"></param> /// <returns></returns> public IApiClientResponse ExecuteRequest(IApiClientRequest request) { using (HttpClient client = new HttpClient()) { IApiClientResponse result = new ApiClientResponse(); var httpRequest = new HttpRequestMessage(new HttpMethod(request.Verb.ToString().ToUpper()), request.Uri); const string contentTypeHeader = "content-type"; string contentType = null; foreach (var h in request.Headers) { //because the api keeps overriding the content type we have to find what we defined before IList <string> values; if (h.Key.Equals(contentTypeHeader, StringComparison.InvariantCultureIgnoreCase) && request.Headers.TryGetValue(h.Key, out values)) { contentType = values.First(); } httpRequest.Headers.TryAddWithoutValidation(h.Key, h.Value); } if (request.Content != null) { if (contentType != null) { httpRequest.Content = new StringContent(request.Content, Encoding.UTF8, contentType); } else { httpRequest.Content = new StringContent(request.Content); } } // Set the timeout just prior to making the request to reduce the risk of unintended overrides (TODO make the HttpClient a singleton) client.Timeout = TimeSpan.FromSeconds(request.TimeoutInSeconds); using (HttpResponseMessage response = client.SendAsync(httpRequest).GetSyncResult()) { result.Status = (int)response.StatusCode; result.StatusCode = (HttpStatusCode)(int)response.StatusCode; result.Headers = CreateHeaders(response.Content.Headers); result.Content = response.Content.ReadAsStringAsync().GetSyncResult(); return(result); } } }