Пример #1
0
        private async Task CreateIngredients(Recipe recipe)
        {
            while (true)
            {
                Console.WriteLine($"Выберите ингридиенты для рецепта");
                var ingredients = await ingredientController.GetAllIngredients();

                ingredients = ingredients.Except(recipe.Ingredients).ToList();

                for (int i = 0; i < ingredients.Count; i++)
                {
                    Console.WriteLine("{0}. {1}", i + 1, ingredients[i].Name);
                }

                Console.WriteLine((ingredients.Count + 1) + ". Создать новый ингридиент.\n" + (ingredients.Count + 2) + ".Выход.");
                if (int.TryParse(Console.ReadLine(), out int num) && num > 0 && num <= ingredients.Count + 2)
                {
                    Console.Clear();
                    if (num == ingredients.Count + 2)
                    {
                        break;
                    }
                    else if (num == ingredients.Count + 1)
                    {
                        var name = CreateString("Название ингридиента");
                        await ingredientController.AddNewIngredient(name, recipe);
                    }
                    else
                    {
                        ingredients[num - 1].Recipes.Add(recipe);
                        ingredientController.UpdateIngredient(ingredients[num - 1]);
                    }
                }
                else
                {
                    Console.WriteLine("Нет ингридиента под таким номером, нажмите любую клавишу что бы продолжить.");
                    Console.ReadKey();
                    Console.Clear();
                }
            }
        }