Esempio n. 1
0
        public Order PlaceOrder(Cart cart)
        {
            var cartLineItemPrices = cart.CartLineItems.ToDictionary(cli => cli.Id, cli => _priceService.GetCartLineItemPrice(cli));

            var order = new Order(Guid.NewGuid(), cart, cartLineItemPrices);
            var price = _priceService.GetTotalCartPrice(cart);

            order.Total = price;
            _orderRepository.Add(order);

            DomainEvents.Raise(new OrderPlacedEvent(order.Id, order.CustomerId));

            return(order);
        }
Esempio n. 2
0
        /// <summary>
        /// Gets the entire cart.
        /// </summary>
        /// <returns></returns>
        public CartViewModel Get()
        {
            var cart   = _currentCart.Cart;
            var cartVm = _cartViewModelFactory.Create(cart);

            var cartPrice = _priceService.GetTotalCartPrice(cart);

            cartVm.Price          = cartPrice.Amount;
            cartVm.Currency       = cartPrice.Currency.ToString();
            cartVm.PriceFormatted = cartPrice.ToString();

            var cartLineItemPrices = cart.CartLineItems.ToDictionary(cli => cli.VariantId, cli => _priceService.GetCartLineItemPrice(cli));

            foreach (var cli in cartVm.CartLineItems)
            {
                var price = cartLineItemPrices.Single(p => p.Key == cli.VariantId).Value;
                cli.Price          = price.Amount;
                cli.Currency       = price.Currency.ToString();
                cli.PriceFormatted = price.ToString();
            }
            return(cartVm);
        }