public void Execute(params string[] parameters) { if (parameters.Length != 2) { Console.WriteLine("Количество параметров должно быть равно двум"); return; } parameters[1] = parameters[1].Replace(".", ","); 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; } if (float.TryParse(parameters[1], out float weight)) { try { _consumptionProducts.ChangeElement(_availabilityProducts.FindElement(levels).Product, _availabilityProducts.ChangeTo(levels, weight)); _availabilityProducts.Date = DateTime.Today; _availableRecipes.ProductСhanges = true; } catch (ArgumentOutOfRangeException) { Console.WriteLine($"Первое значение [{ levels[0] }] в идентификаторе находится за пределами допустимого диаппазона"); } catch (ArgumentException e) { Console.WriteLine(e.Message); } } else { Console.WriteLine($"Вес продукта [{ parameters[1] }] введен некорректно"); } }
public void Execute(params string[] parameters) { if (parameters.Length != 0) { Console.WriteLine("Команда не принимает параметры"); return; } Dictionary <string, float> products = _availabilityProducts.ElementMerge(); List <Commodity> goods = new List <Commodity>(); foreach (var i in products) { goods.Add(new Commodity(i.Key, i.Value, DateTime.Today)); } foreach (var i in goods) { _consumptionProducts.ChangeElement(i.Product, i.Weight); } Console.WriteLine("Добавить удаляемые продукты в список необходимых продуктов?"); var cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { foreach (var i in goods) { _necessaryProducts.Add(i); } } _availabilityProducts.Clear(); _availabilityProducts.Date = DateTime.Today; _availableRecipes.ProductСhanges = true; }
public void Execute(params string[] parameters) { if (parameters.Length == 0) { Console.WriteLine("Количество параметров должно быть больше нуля"); return; } var args = new List <string>(); foreach (var i in parameters) { if (args.IndexOf(i) == -1) { args.Add(i); } } args.Sort(CompareDinosByLength); args.Reverse(); List <int[]> identifiers = new List <int[]>(); foreach (var i in args.Distinct()) { var levelsString = i.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($"Формат идентификатора { i } не верен"); } } } catch (ArgumentException e) { Console.WriteLine(e.Message); Console.WriteLine("Он будет пропущен"); continue; } identifiers.Add(levels); } foreach (var i in identifiers) { try { var product = _availabilityProducts.FindElement(i); Console.WriteLine($"Добавить [Name: { product.ToString() }] в список необходимых продуктов"); var cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { _necessaryProducts.Add(product); } _consumptionProducts.ChangeElement(product.Product, product.Weight); _availabilityProducts.RemoveAt(i); } catch (ArgumentOutOfRangeException) { Console.WriteLine($"Первое значение [{ i[0] }] в идентификаторе находится за пределами допустимого диаппазона"); } catch (ArgumentException e) { Console.WriteLine(e.Message); Console.WriteLine("Он будет пропущен"); continue; } } _availabilityProducts.Date = DateTime.Today; _availableRecipes.ProductСhanges = true; }
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); } }