// GET: Basket public ActionResult Index() { BasketViewModel model = new BasketViewModel { Items = new List<BasketItemViewModel>() }; Basket basket = GetCurrentUsersBasket(); if (basket != null) { foreach (BasketItem basketItem in basket.Items) { Item item = _itemRepository.Get(basketItem.ItemId); if (item != null) { BasketItemViewModel itemModel = new BasketItemViewModel { Quantity = basketItem.Quantity, Name = item.Name, Cost = item.Price * basketItem.Quantity, ItemId = basketItem.ItemId }; model.Items.Add(itemModel); } } } model.TotalCost = model.Items.Sum(c => c.Cost); return View(model); }
public ActionResult CheckOut(BasketViewModel model) { Basket basket = _basketRepository.Get(User.Identity.Name); if (basket != null) { Order order = new Order { Items = new List<OrderLine>(), Status = OrderStatus.Draft, UserId = basket.UserId, OrderDate = DateTime.Today }; foreach (BasketItem basketItem in basket.Items) { OrderLine orderLine = new OrderLine { itemId = basketItem.ItemId, Quantity = basketItem.Quantity }; Item item = _itemRepository.Get(basketItem.ItemId); orderLine.unitPrice = item.Price; orderLine.Name = item.Name; order.Items.Add(orderLine); } _orderRepository.Create(order); basket.Items.Clear(); _basketRepository.Delete(basket.Id); return Redirect(Url.Action("Confirm", "Order", new {orderId = order.Id})); } return View(model); }