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); }