Пример #1
0
        public async Task Order(OrderShoppingCart command)
        {
            var wk = await repository.GetAsync <ShoppingCart>(command.ShoppingCartId);

            wk.Order(repository);

            await repository.SaveAsync(wk);

            var cp = await repository.GetCurrentCheckpointNumberAsync();

            await checkpointPersister.WaitForCheckpointNumberAsync <ShoppingCartReadModelState>(cp);
        }
Пример #2
0
        public bool CreateOrderFromCart()
        {
            if (this.shoppingCart.Items.Count < 1)
            {
                return(false);
            }

            // Create a new order
            Order order = new Order
            {
                CustomerID     = customer.ID,
                ShippingMethod = "",
                ShippingCost   = 0.00m,
                OrderTotal     = GetCartTotal()
            };

            this.context.Orders.Add(order);
            this.context.SaveChanges();

            // Make a copy of the current shopping cart for the order
            var orderCart = new OrderShoppingCart
            {
                OrderID = order.ID
            };

            this.context.OrderShoppingCart.Add(orderCart);
            this.context.SaveChanges();

            foreach (var cartItem in shoppingCart.Items)
            {
                this.context.OrderShoppingCartItems.Add(new OrderShoppingCartItem
                {
                    OrderShoppingCartID = orderCart.ID,
                    ProductID           = cartItem.ProductID,
                    Quantity            = cartItem.Quantity
                });
            }

            this.context.SaveChanges();
            EmptyCart();
            return(true);
        }