Exemplo n.º 1
0
        public async Task CheckoutBasketAsync(
            string token,
            string language,
            Guid?clientId,
            string clientName,
            Guid?basketId,
            DateTime?expectedDelivery,
            string moreInfo)
        {
            var requestModel = new CheckoutBasketRequestModel
            {
                ClientId             = clientId,
                ClientName           = clientName,
                BasketId             = basketId,
                ExpectedDeliveryDate = expectedDelivery,
                MoreInfo             = moreInfo
            };

            var apiRequest = new ApiRequest <CheckoutBasketRequestModel>
            {
                Language        = language,
                Data            = requestModel,
                AccessToken     = token,
                EndpointAddress = $"{this.settings.Value.BasketUrl}{ApiConstants.Baskets.BasketsCheckoutApiEndpoint}"
            };

            var response = await this.apiClientService.PostAsync <ApiRequest <CheckoutBasketRequestModel>, CheckoutBasketRequestModel, BaseResponseModel>(apiRequest);

            if (!response.IsSuccessStatusCode)
            {
                throw new CustomException(response.Message, (int)response.StatusCode);
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Checkout([FromBody] CheckoutBasketRequestModel model)
        {
            var token = await HttpContext.GetTokenAsync(ApiExtensionsConstants.TokenName);

            var language = CultureInfo.CurrentUICulture.Name;

            var client = await this.clientsRepository.GetClientAsync(token, language);

            await this.basketRepository.CheckoutBasketAsync(
                token, language, client.Id, client.Name, model.BasketId, model.ExpectedDeliveryDate, model.MoreInfo);

            return(this.StatusCode((int)HttpStatusCode.Accepted, new { Message = this.orderLocalizer.GetString("OrderPlacedSuccessfully").Value }));
        }