Exemplo n.º 1
0
        public IActionResult OrderCheckout(OrderDetailsViewModel model)
        {
            string userName = User.Identity.Name;

            if (userName == null)
            {
                return(RedirectToAction("Cart"));
            }

            if (ModelState.IsValid)
            {
                Order newOrder = _sqlOrderService.CreateOrder(model, _cartService.TransformCartToViewModel(), userName);
                _cartService.RemoveAllProductsFromCart();
                return(RedirectToAction("OrderConfirmed", new { orderNumber = newOrder.Id }));
            }
            else
            {
                OrderViewModel order = new OrderViewModel()
                {
                    Cart      = _cartService.TransformCartToViewModel(),
                    OrderData = model
                };
                return(View("Cart", order));
            }
        }
Exemplo n.º 2
0
        public IActionResult OrderCheckout(OrderDetailsViewModel model)
        {
            string userName = User.Identity.Name;

            if (userName == null)
            {
                return(RedirectToAction("Cart"));
            }

            if (ModelState.IsValid)
            {
                CreateOrderModel createOrderModel = new CreateOrderModel()
                {
                    OrderDetails = model,
                    OrderItems   = _cartService.TransformCartToViewModel().CartItems.Select(i => new OrderItemDTO()
                    {
                        ProductId = i.Product.Id,
                        Quantity  = i.Quantity,
                        Price     = i.Price
                    }).ToList()
                };
                OrderDTO newOrder = _sqlOrderService.CreateOrder(createOrderModel, userName);
                _cartService.RemoveAllProductsFromCart();
                return(RedirectToAction("OrderConfirmed", new { orderNumber = newOrder.Id }));
            }
            else
            {
                OrderViewModel order = new OrderViewModel()
                {
                    Cart      = _cartService.TransformCartToViewModel(),
                    OrderData = model
                };
                return(View("Cart", order));
            }
        }
        public OrderDTO CreateOrder([FromBody] CreateOrderModel createOrderModel, string UserName)
        {
            //обязательно в каждом методе контроллера нужна валидация, особенно в методах "Set.."
            if (string.IsNullOrEmpty(UserName))
            {
                throw new ArgumentException("Не указано имя пользователя");
            }

            if (string.IsNullOrEmpty(createOrderModel.OrderDetails.Address))
            {
                throw new ArgumentException("Не указан адрес доставки");
            }

            //пример логирования (должно быть как в контроллере, так и в клиенте)
            _Logger.LogInformation("Создаётся заказ для пользователя {0}", UserName);
            var order = _sqlOrderService.CreateOrder(createOrderModel, UserName);

            _Logger.LogInformation("Заказ для пользователя {0} создан успешно", UserName);
            return(order);

            //return _sqlOrderService.CreateOrder(createOrderModel, UserName);
        }