Exemple #1
0
        public async Task <List <IngredientsUsageViewModel> > IngredientsUsage()
        {
            var ingredientsUsageList = new List <IngredientsUsageViewModel>();
            var ingredients          = await _ingredientsRepository.GetIngredients();

            //"CreateNewIngredient" - model for get amount as property
            foreach (var item in ingredients)
            {
                var findIngredientsIntoDishes = await _dishesIngredientsRepository.UsageOfIngredients(item.Id);

                var listOfIngredients = new List <IngredientsView>();
                var listOfAmounts     = new List <CreateNewIngredient>();
                foreach (var item2 in findIngredientsIntoDishes)
                {
                    var ingredient = new IngredientsView();
                    ingredient.Id = item2.Id;
                    listOfIngredients.Add(ingredient);

                    var ingredientPerDish = new CreateNewIngredient();
                    ingredientPerDish.Amount = item2.Amount;
                    listOfAmounts.Add(ingredientPerDish);
                }
                int numberOfIngredientsInDishes = listOfIngredients.Count();
                var amoutOfIngredientsInDishes  = listOfAmounts.Sum(x => x.Amount);
                var ingredientsUsage            = new IngredientsUsageViewModel()
                {
                    Id             = item.Id,
                    Name           = item.Name,
                    TotalAmount    = amoutOfIngredientsInDishes,
                    NumberOfDishes = numberOfIngredientsInDishes
                };
                ingredientsUsageList.Add(ingredientsUsage);
            }
            return(ingredientsUsageList);
        }