Exemple #1
0
        private async Task <SalesCatalogueResponse> CreateSalesCatalogueServiceResponse(HttpResponseMessage httpResponse, string correlationId)
        {
            var response = new SalesCatalogueResponse();
            var body     = await httpResponse.Content.ReadAsStringAsync();

            if (httpResponse.StatusCode != HttpStatusCode.OK && httpResponse.StatusCode != HttpStatusCode.NotModified)
            {
                logger.LogError(EventIds.SalesCatalogueServiceNonOkResponse.ToEventId(), "Error in sales catalogue service with uri:{RequestUri} and responded with {StatusCode} and _X-Correlation-ID:{CorrelationId}", httpResponse.RequestMessage.RequestUri, httpResponse.StatusCode, correlationId);
                response.ResponseCode = httpResponse.StatusCode;
                response.ResponseBody = null;
            }
            else
            {
                response.ResponseCode = httpResponse.StatusCode;
                var lastModified = httpResponse.Content.Headers.LastModified;
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    response.ResponseBody = JsonConvert.DeserializeObject <SalesCatalogueProductResponse>(body);
                }
                if (lastModified != null)
                {
                    response.LastModified = ((DateTimeOffset)lastModified).UtcDateTime;
                }
            }

            return(response);
        }
Exemple #2
0
        public void CheckGetFileSize()
        {
            SalesCatalogueResponse salesCatalogueResponse = GetSalesCatalogueFileSizeResponse();
            long fileSize = CommonHelper.GetFileSize(salesCatalogueResponse.ResponseBody);

            Assert.AreEqual(500, fileSize);
        }
Exemple #3
0
        private ExchangeSetResponse MapExchangeSetResponse(SalesCatalogueResponse salesCatalougeResponse)
        {
            var model = mapper.Map <ExchangeSetResponse>(salesCatalougeResponse.ResponseBody?.ProductCounts);

            model.RequestedProductsNotInExchangeSet = mapper.Map <IEnumerable <RequestedProductsNotInExchangeSet> >(salesCatalougeResponse.ResponseBody?.ProductCounts?.RequestedProductsNotReturned);
            return(model);
        }
Exemple #4
0
        private ExchangeSetServiceResponse SetExchangeSetResponse(SalesCatalogueResponse salesCatalougeResponse, bool isNotModifiedToOk)
        {
            var response = new ExchangeSetServiceResponse
            {
                HttpStatusCode = salesCatalougeResponse.ResponseCode
            };

            if (salesCatalougeResponse.ResponseCode == HttpStatusCode.OK)
            {
                response.ExchangeSetResponse = MapExchangeSetResponse(salesCatalougeResponse);
                response.LastModified        = ConvertLastModifiedToString(salesCatalougeResponse);
            }
            else if (salesCatalougeResponse.ResponseCode == HttpStatusCode.NotModified)
            {
                if (isNotModifiedToOk)
                {
                    response.HttpStatusCode = HttpStatusCode.OK;
                }
                response.ExchangeSetResponse = new ExchangeSetResponse();
                response.LastModified        = ConvertLastModifiedToString(salesCatalougeResponse);
            }
            else
            {
                response.HttpStatusCode = HttpStatusCode.InternalServerError;
            }
            return(response);
        }
Exemple #5
0
        public Task <SalesCatalogueResponse> GetProductsFromSpecificDateAsync(string sinceDateTime, string correlationId)
        {
            return(logger.LogStartEndAndElapsedTimeAsync(
                       EventIds.SCSGetProductsFromSpecificDateRequestStart,
                       EventIds.SCSGetProductsFromSpecificDateRequestCompleted,
                       "Get sales catalogue service from specific date time for _X-Correlation-ID:{CorrelationId}",
                       async() => {
                var accessToken = await authScsTokenProvider.GetManagedIdentityAuthAsync(salesCatalogueConfig.Value.ResourceId);
                var uri = $"/{salesCatalogueConfig.Value.Version}/productData/{salesCatalogueConfig.Value.ProductType}/products?sinceDateTime={sinceDateTime}";

                var httpResponse = await salesCatalogueClient.CallSalesCatalogueServiceApi(HttpMethod.Get, null, accessToken, uri);

                SalesCatalogueResponse response = await CreateSalesCatalogueServiceResponse(httpResponse, correlationId);
                return response;
            },
                       correlationId));
        }
Exemple #6
0
 private string ConvertLastModifiedToString(SalesCatalogueResponse salesCatalougeResponse)
 {
     return((salesCatalougeResponse.LastModified.HasValue) ? salesCatalougeResponse.LastModified.Value.ToString(RFC1123Format) : null);
 }