public bool Checkout(Order order) { var listCart = _cartRepository.GetCart(order.CustomerID); order.OrderStatusId = _orderStatusRepository.GetByName("Pending").Id; if (listCart.Count == 0) { return(false); } _orderRepository.Add(order); if (!_orderRepository.Save()) { return(false); } decimal totalCost = 0; foreach (var cart in listCart) { var menuItem = _menuItemRepository.Get(cart.MenuItemId.Value); var orderDetail = new OrderDetail() { OrderId = order.Id, MenuItemId = menuItem.Id, UnitCost = menuItem.Price.Value, Quantity = cart.Count.Value, }; totalCost += menuItem.Price.Value * cart.Count.Value; _cartRepository.Delete(cart); _orderDetailsRepository.Add(orderDetail); } order.Total = totalCost; _cartRepository.Save(); _orderDetailsRepository.Save(); order.Total = totalCost; return(_orderRepository.Update(order)); }