public decimal Calculate(CalculateTrolleyTotalRequest request) { var trolleryTotal = 0m; if (request.Specials != null) { foreach (var eachSpecial in request.Specials) { trolleryTotal += _specialsProcessor.Calculate(eachSpecial, request.Quantities); } } foreach (var eachPurchasedQuantity in request.Quantities) { trolleryTotal += _normalPriceProcessor.Calculate( eachPurchasedQuantity, request.Products); } return(trolleryTotal); }
public async Task <decimal> Calculate(CalculateTrolleyTotalRequest request) { using (var client = new HttpClient()) { //1. Create wooliex trolley total request var requestUrl = string.Format("{0}/{1}?token={2}", _wooliesXApiDetail.BaseUrl.Trim('/'), _wooliesXApiDetail.TrolleyCalculatorMethodName, _wooliesXApiDetail.ApiToken); var requestString = JsonConvert.SerializeObject(request); var requestContent = new StringContent(requestString, System.Text.Encoding.UTF8, "application/json"); //2. Post var response = await client.PostAsync(requestUrl, requestContent); response.EnsureSuccessStatusCode(); //2. Read response var result = await response.Content.ReadAsStringAsync(); var trolleyTotal = JsonConvert.DeserializeObject <decimal>(result); return(trolleyTotal); } }
public ActionResult Post([FromBody] CalculateTrolleyTotalRequest request) { _logger.LogInformation(System.Text.Json.JsonSerializer.Serialize(request)); return(Ok(_service.Calculate(request))); }
public async Task <decimal> CalculateTrolleyTotal(CalculateTrolleyTotalRequest request) { return(await _shoppingService.CalculateTrolleyTotalAsync(request)); }
public async Task <decimal> CalculateTrolleyTotalAsync(CalculateTrolleyTotalRequest request) { var trolleyTotal = await _trolleyTotalCalculator.Calculate(request); return(trolleyTotal); }