public async Task <decimal> GetTrolleyTotal(TrolleyCalculatorRequest request)
        {
            var token = _wooliesXConfig.Value.User.Token;

            var responseMessage = await _httpClient.PostAsJsonAsync($"trolleyCalculator?token={token}", request);

            var stringResponse = await responseMessage.Content.ReadAsStringAsync();

            if (!responseMessage.IsSuccessStatusCode)
            {
                throw new DownstreamFailureException(
                          $"failed with status code {responseMessage.StatusCode}");
            }

            return(decimal.Parse(stringResponse));
        }
Example #2
0
        public async Task <decimal> GetApiCalculatedTotal(TrolleyCalculatorRequest request)
        {
            try
            {
                decimal result;
                var     json     = JsonConvert.SerializeObject(request);
                var     body     = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
                var     uri      = this._httpClient.GetUri("trolleyCalculator");
                var     response = await this._httpClient.HttpClient.PostAsync(uri.Uri, body);

                Decimal.TryParse(await response.Content.ReadAsStringAsync(), out result);
                return(result);
            }
            catch (HttpRequestException exception)
            {
                //this._logger.LogError("Unable to complete post to resource {resource}", "trolleyCalculator");
                throw exception;
            }
        }
Example #3
0
        public decimal RequestTrolleyPrice(TrolleyCalculatorRequest req)
        {
            string resource = "resource/trolleyCalculator";

            var qs = "?token=" + _config.Token;

            string url = string.Format("{0}{1}{2}", _url, resource, qs);

            var requestBody = JsonConvert.SerializeObject(req);

            using (WebClient wc = new WebClient())
            {
                wc.Headers["Content-Type"] = "application/json";

                var result = wc.UploadString(url, requestBody);

                decimal price = 0;

                decimal.TryParse(result, out price);

                return(price);
            }
        }
Example #4
0
        public decimal Post([FromBody] TrolleyCalculatorRequest req)
        {
            var result = service.RequestTrolleyPrice(req);

            return(result);
        }
 public async Task <decimal> Sort([FromServices] IExerciseThreeService service, [FromBody] TrolleyCalculatorRequest request)
 {
     return(await service.GetApiCalculatedTotal(request));
 }
        public async Task <IActionResult> TrolleyTotal([FromBody] TrolleyCalculatorRequest request)
        {
            var total = await _resourceService.GetTrolleyTotal(request);

            return(Ok(total));
        }