public void Execute(params string[] parameters) { if (parameters.Length != 0) { Console.WriteLine("Команда не принимает параметры"); return; } List <Commodity> products = ReadingFile(@"..\..\Text.txt"); foreach (var i in products) { var k = _necessaryProducts.IndexOf(i); if (k[2] != -1) { _necessaryProducts.RemoveAt(k); } } _availabilityProducts.AddRange(products); if (_necessaryProducts.Date != null) { _consumptionProducts.UpdateAmountDays(_date, _necessaryProducts.Date); } _necessaryProducts.Date = _date; foreach (var i in products) { _consumptionProducts.Add(i.Product, _date); } }
public void Execute(params string[] parameters) { if (parameters.Length != 1) { Console.WriteLine("Количество параметров должно быть равно одному"); return; } var levelsString = parameters[0].Split(':'); var levels = new int[levelsString.Length]; try { for (var k = 0; k < levelsString.Length; k++) { if (!int.TryParse(levelsString[k], out levels[k])) { throw new ArgumentException($"Формат идентификатора { parameters[0] } не верен"); } } } catch (ArgumentException e) { Console.WriteLine(e.Message); return; } try { var recipe = _listCategoriesRecipes.FindElement(levels); List <Commodity> products = recipe.GetProducts(); List <Commodity> missingProducts = _availabilityProducts.GetMissingProducts(products); if (missingProducts.Count != 0) { Console.WriteLine("Не хватает этих продуктов:"); foreach (var i in missingProducts) { Console.WriteLine(i.ToString()); } Console.WriteLine("У вас есть эти продукты?(Y/)"); var cmd = Console.ReadLine(); if (cmd != "Y" && cmd != "y") { Console.WriteLine("Невозможно приготовить без продуктов"); Console.WriteLine("Добавить эти продукты в список необходимых продуктов?(Y/)"); var command = Console.ReadLine(); if (command == "Y" || command == "y") { foreach (var i in products) { _necessaryProducts.Add(i); } } return; } } _availabilityProducts.Add(new Commodity(new Product(recipe.CategoryName, recipe.Name, recipe.ExpiryIn, recipe.WeightUnit), recipe.Weight, DateTime.Today)); foreach (var i in products) { _consumptionProducts.Add(i.Product, DateTime.Today); _consumptionProducts.ChangeElement(i.Product, i.Weight); } _listCategoriesRecipes.RemoveAt(levels); Console.WriteLine("Продукты необходимые для приготовления вычлись из доступных продуктов"); } catch (ArgumentOutOfRangeException) { throw new ArgumentException($"Первое значение [{ levels[0] }] в идентификаторе находится за пределами допустимого диаппазона"); } catch (ArgumentException e) { Console.WriteLine(e.Message); } }
public void Execute(params string[] parameters) { if (parameters.Length < 2) { Console.WriteLine("Количество параметров должно быть не менее двух"); return; } int indexWeight = parameters.Length - 1; DateTime dateOfPurchase; try { if (DateAvailability(parameters[parameters.Length - 1], out DateTime date)) { dateOfPurchase = date; indexWeight--; } else { dateOfPurchase = date; } } catch (ArgumentException e) { Console.WriteLine(e.Message); Console.WriteLine(Description); Console.WriteLine("Добавить продукт с текущей датой(Y/)"); string cmd = Console.ReadLine(); if (cmd != "Y" && cmd != "y") { return; } dateOfPurchase = DateTime.Today; } parameters[indexWeight] = parameters[indexWeight].Replace(".", ","); string[] name = new string[indexWeight]; Array.Copy(parameters, name, indexWeight); string nameProduct = string.Join(" ", name); if (float.TryParse(parameters[indexWeight], out float a)) { try { var product = new Commodity(nameProduct, a, dateOfPurchase); _availabilityProducts.Add(product); var id = _necessaryProducts.IndexOf(product); if (id[2] != -1) { Console.WriteLine($"Удалить [{ product.ToString() }] из списка необходимых продуктов(Y/)"); var cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { _necessaryProducts.RemoveAt(id); } } //_consumptionProducts.UpdateAmountDays(_necessaryProducts.Date); //_necessaryProducts.Date = DateTime.Today; _availabilityProducts.Date = DateTime.Today; _consumptionProducts.Add(product.Product, DateTime.Today); _availableRecipes.ProductСhanges = true; } catch (ArgumentException e) { Console.WriteLine(e.Message); Console.WriteLine("Чтобы добавить продукт в базу воспользуйтесь командой [add-product]"); return; } } else { Console.WriteLine($"Вес продукта [{parameters[indexWeight]}] введен некорректно"); return; } }