Ejemplo n.º 1
0
        public async Task <Product> CreateOrderAsync(int id, string basketId)
        {
            // get basket from the repo
            var basket = await _basketRepo.GetBasketAsync(basketId);

            // get items from the product repo
            var items = new List <RecipeItem>();

            foreach (var item in basket.Items)
            {
                var productItem = await _unitOfWork.Repository <Ingredient>().GetByIdAsync(item.Id);

                var itemOrdered = new IngredientItemAdded(productItem.Id, productItem.Name);
                var orderItem   = new RecipeItem(itemOrdered, productItem.Price, item.Quantity);
                items.Add(orderItem);
            }

            // create order
            var order = new Product(items);

            _unitOfWork.Repository <Product>().Add(order);

            // save to db
            var result = await _unitOfWork.Complete();

            if (result <= 0)
            {
                return(null);
            }

            // return order
            return(order);
        }
Ejemplo n.º 2
0
 public RecipeItem(IngredientItemAdded itemAdded, decimal price, decimal quantity)
 {
     ItemAdded = itemAdded;
     Price     = price;
     Quantity  = quantity;
 }