Ejemplo n.º 1
0
        public IActionResult DoPayment(OrderViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = _mapper.Map <OrderViewModel>(_basketManager.GetBasket());

                return(View("MakeOrder", viewModel));
            }

            var basket = _basketManager.GetBasket();

            if (model.PaymentMethod == PaymentMethod.Card)
            {
                model.OrderDetails = _mapper.Map <List <OrderDetailsViewModel> >(basket.OrderDetails);

                return(View("CardPayment", model));
            }

            var order = _mapper.Map <Order>(model);

            order.OrderDetails = basket.OrderDetails;
            _orderService.CreateOrder(order);
            _basketManager.ClearBasket();

            return(View("OrderPlacing"));
        }
Ejemplo n.º 2
0
        public IActionResult Charge([FromBody] ChargeViewModel model)
        {
            var basket = _basketManager.GetBasket();

            basket.Customer = _mapper.Map <Customer>(model.Order.Customer);
            var paymentResult = _orderService.ProcessPayment(basket, model.Token);

            if (paymentResult.IsSuccessful)
            {
                _basketManager.ClearBasket();

                return(Ok(paymentResult));
            }

            return(BadRequest(paymentResult));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Receipt(int orderId)
        {
            Order order = await _ordManager.GetOrder(orderId);

            if (order is null)
            {
                return(NotFound());
            }

            if (!order.Completed)
            {
                await SendReceipt(order);

                order.Completed = true;
                await _ordManager.UpdateOrder(order, order.ID);

                Basket basket = await _bsktManager.GetBasket(order.ApplicationUserID);

                await _bsktManager.ClearBasket(basket.ID);
            }

            return(View(order));
        }
Ejemplo n.º 4
0
 public async Task <OperationDetails> ClearBasket(string basketId)
 {
     return(await basketMng.ClearBasket(basketId));
 }
Ejemplo n.º 5
0
 public IActionResult Clear(string buyerId)
 {
     _basketManager.ClearBasket(buyerId);
     return(Ok());
 }