public async Task <DetailResponse> GetValidatedMarketDetail(OriginalDetailRequest request)
        {
            OriginalDetailResponse originalDetailResponse = await GetOriginalDetails(request);

            originalDetailResponse.marketDetails.Schedule = originalDetailResponse.marketDetails.Schedule.Replace("<br>", "").Trim();

            if (originalDetailResponse.marketDetails.Products == "")
            {
                originalDetailResponse.marketDetails.Products = null;
            }

            if (originalDetailResponse.marketDetails.Schedule == "")
            {
                originalDetailResponse.marketDetails.Schedule = null;
            }
            else
            {
                originalDetailResponse.marketDetails.Schedule = originalDetailResponse.marketDetails.Schedule.Substring(25);
            }

            Models.DatabaseModels.Market databaseMarket = new Models.DatabaseModels.Market
            {
                MarketNumber  = request.MarketId,
                Address       = originalDetailResponse.marketDetails.Address,
                GoogleAddress = originalDetailResponse.marketDetails.GoogleLink,
                Products      = originalDetailResponse.marketDetails.Products,
                Schedule      = originalDetailResponse.marketDetails.Schedule
            };

            databaseMarket = await dbService.AddUpdateMarketToDatabase(databaseMarket);

            await dbService.SaveChanges();

            var item = new DetailResponse
            {
                Address          = databaseMarket.Address,
                GoogleAddressUrl = databaseMarket.GoogleAddress
            };

            if (databaseMarket.Products != null)
            {
                item.Products = databaseMarket.Products.Split("; ");
            }

            if (databaseMarket.Schedule != null)
            {
                item.Schedule = databaseMarket.Schedule.Split(";");
            }

            return(item);
        }
        private async Task <OriginalDetailResponse> GetOriginalDetails(OriginalDetailRequest request)
        {
            string path = baseUrl;
            OriginalDetailResponse response = null;
            int    requestType     = (int)RequestTypeEnum.GetDetails;
            string rawJsonResponse = null;

            if (request.MarketId != null)
            {
                //pull details of Market
                path += $"/mktDetail?id={request.MarketId}";
            }
            else
            {
                //Bad Request
                return(null);
            }

            HttpResponseMessage httpResponse = await http.GetAsync(path);

            if (httpResponse.IsSuccessStatusCode)
            {
                rawJsonResponse = await httpResponse.Content.ReadAsStringAsync();

                response = JsonConvert.DeserializeObject <OriginalDetailResponse>(rawJsonResponse);

                //save request to database
                await dbService.RecordRequest(new Models.DatabaseModels.Request()
                {
                    RequestType     = requestType,
                    RequestMarketId = request.MarketId,
                    Response        = rawJsonResponse,
                    CreatedDate     = new DateTime()
                });
            }

            return(response);
        }