public Category Create(int categoryId) { var categoryCreater = new BaseCreater <Category>(); var category = categoryCreater.Create("Создаем категорию рецептов."); category.Id = categoryId; return(category); }
public Recipe Create(Category curentCategory, int recipesCount, List <Ingredient> ingredients) { var recipeCreater = new BaseCreater <Recipe>(); var recipe = recipeCreater.Create($"Создаем рецепт."); recipe.Id = recipesCount; recipe.CategoryId = curentCategory.Id; while (true) { Console.Clear(); Console.WriteLine($"Выберите ингридиенты для рецепта {recipe.Name}"); var ingr = new List <Ingredient>(); for (int i = 0, j = 1; i < ingredients.Count; i++) { if (!recipe.Ingredients.Keys.Any(x => x == ingredients[i].Id)) { Console.WriteLine("{0}. {1}", j, ingredients[i].Name); ingr.Add(ingredients[i]); j++; } } Console.WriteLine(ingredients.Count - recipe.Ingredients.Count + 1 + ". Создать новый ингридиент."); Console.WriteLine(ingredients.Count - recipe.Ingredients.Count + 2 + ". Выход."); if (int.TryParse(Console.ReadLine(), out int num) && num > 0 && num <= ingredients.Count - recipe.Ingredients.Count + 2) { Console.Clear(); if (num == ingredients.Count - recipe.Ingredients.Count + 2) { break; } else if (num == ingredients.Count - recipe.Ingredients.Count + 1) { var ingredientCreater = new IngredientCreater(); ingredients.Add(ingredientCreater.Create(ingredients)); } else { Console.WriteLine("Введите количество/обьем/массу"); var volume = Console.ReadLine(); if (string.IsNullOrWhiteSpace(volume)) { throw new ArgumentNullException("Значение не может быть пустой строкой", nameof(volume)); } recipe.Ingredients.Add(ingr[num - 1].Id, volume); } } else { Console.WriteLine("Нет ингридиента под таким номером, нажмите любую клавишу что бы продолжить."); Console.ReadKey(); } } Console.Clear(); return(recipe); }
public Ingredient Create(List <Ingredient> ingredients) { var ingredientCreater = new BaseCreater <Ingredient>(); var ingredient = ingredientCreater.Create("Создаем ингридиент."); if (ingredients.Any(x => x.Name.ToLower() == ingredient.Name.ToLower())) { Console.WriteLine("Такой ингридиент уже есть, нажмите любую клавишу что бы продолжить."); Console.ReadKey(); return(null); } if (ingredients.Count == 0) { ingredient.Id = 0; } else { ingredient.Id = ingredients.Max(i => i.Id) + 1; } return(ingredient); }