Exemplo n.º 1
0
        public Order CreateOrder(User user, ShoppingCart shoppingCart)
        {
            var order             = new Order();
            var shoppingCartItems =
                _shoppingCartItemRepository.GetAllList(s => s.ShoppingCart.Id == shoppingCart.Id);

            if (shoppingCartItems == null || !shoppingCartItems.Any())
            {
                throw new InvalidOperationException("Shopping Cart have not any item");
            }

            order.OrderItems = new List <OrderItem>();
            foreach (var shoppingCartItem in shoppingCartItems)
            {
                var orderItem = shoppingCartItem.ConvertToOrderItem();
                orderItem.Order = order;
                order.OrderItems.Add(orderItem);
                _shoppingCartItemRepository.Delete(shoppingCartItem);
            }
            order.User   = user;
            order.Status = OrderStatus.Paid;
            _orderRepository.Insert(order);
            return(order);
        }