public async Task AddToCart(int cartId, int categoryId, decimal price, int quantity) { var cart = await _CartRepository.GetByIdAsync(cartId); cart.AddItem(categoryId, price, quantity); await _CartRepository.UpdateAsync(cart); }
public async Task CreateOrderAsync(int cartId, Address shipAddress) { var cart = await _cartRepository.GetByIdAsync(cartId); var items = new List <OrderItem>(); foreach (var item in cart.Items) { var catalogItem = await _productRepository.GetByIdAsync(item.CategoryItemId); var itemOrdered = new CategoryOrdered(catalogItem.Id, catalogItem.Name); var orderItem = new OrderItem(itemOrdered, item.UnitPrice, item.UnitQuantity); items.Add(orderItem); } var order = new Order(cart.UserId, shipAddress, items); await _orderRepository.AddAsync(order); }