Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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();
            }
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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})");
        }
Esempio n. 7
0
        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})");
        }
Esempio n. 9
0
        /// <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);
                }
            }
        }