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); }
public void CheckGetFileSize() { SalesCatalogueResponse salesCatalogueResponse = GetSalesCatalogueFileSizeResponse(); long fileSize = CommonHelper.GetFileSize(salesCatalogueResponse.ResponseBody); Assert.AreEqual(500, fileSize); }
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); }
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); }
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)); }
private string ConvertLastModifiedToString(SalesCatalogueResponse salesCatalougeResponse) { return((salesCatalougeResponse.LastModified.HasValue) ? salesCatalougeResponse.LastModified.Value.ToString(RFC1123Format) : null); }