示例#1
0
        public async Task <IActionResult> PlaceOrder(OrderViewModel orderViewModel)
        {
            var ordersDetails = await _cartService.GetOrderDetailsAsync();

            if (ordersDetails.Any())
            {
                var totalPrice = Math.Round(ordersDetails.Sum(detail => detail.TotalPrice), 2);

                var newOrder = new Order()
                {
                    Address       = orderViewModel.Address,
                    IsOrderActive = true,
                    Information   = orderViewModel.Information ?? "None",
                    Name          = orderViewModel.Name,
                    LastName      = orderViewModel.LastName,
                    PhoneNumber   = orderViewModel.PhoneNumber,
                    TotalPrice    = totalPrice,
                    OrderDetails  = ordersDetails,
                    OrderDate     = DateTime.Now,
                    Email         = orderViewModel.Email
                };

                await _orderRepository.Add(newOrder);

                await _cartService.ClearCartAsync();

                return(RedirectToAction("OrderSuccessful", newOrder));
            }

            else
            {
                return(NoContent());
            }
        }