public void Execute(params string[] parameters) { if (parameters.Length < 2) { Console.WriteLine("Количество параметров должно быть не менее двух"); return; } int indexWeight = parameters.Length - 1; 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 weight)) { try { var product = new Commodity(nameProduct, weight, DateTime.Today); _necessaryProducts.Add(product); var id = _availabilityProducts.IndexOf(product); if (id[2] != -1) { Console.WriteLine($"Удалить [{ product.ToString() }] из списка доступных продуктов(Y/)"); var cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { _availabilityProducts.RemoveAt(id); } } } catch (ArgumentException e) { Console.WriteLine(e.Message); Console.WriteLine("Чтобы добавить продукт в базу воспользуйтесь командой [add-product]"); return; } } else { Console.WriteLine($"Вес продукта [{parameters[indexWeight]}] введен некорректно"); return; } }
private void ChangesOverTime() { if (_availabilityProducts.RemovingSpoiledProducts()) { Console.WriteLine("Испорченные продукты были удалены"); } List <ConsumedCommodity> products = _consumptionProducts.RecommendedProducts(); if (products.Count == 0) { return; } List <Commodity> goods = new List <Commodity>(); foreach (var i in products) { goods.Add(new Commodity(i.Product, i.Weight, DateTime.Today)); } var recommendations = new ListCategoriesCommodity(_availabilityProducts.Date); foreach (var i in _availabilityProducts.GetCommodityAll()) { recommendations.Add(new Commodity(i.Product, i.Weight, i.ExpiryDate)); } if (!recommendations.ChangeOverTime(goods)) { return; } Console.WriteLine("Возможные изменения доступных продуктов:"); recommendations.Print(true); Console.WriteLine($"Сохранить изменения?(Y/)"); string cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { _availabilityProducts = recommendations; } _availableRecipes.ProductСhanges = true; }
private void PrintRecipe(Recipe recipe) { Console.WriteLine($"Recipe: { recipe.ToString() }"); Console.WriteLine(Line); Console.WriteLine("Ingredients:"); List <Commodity> products = recipe.GetProducts(); foreach (var i in products) { Console.WriteLine(i.ToString()); } Console.WriteLine(Line); Console.WriteLine("Info:"); Console.WriteLine(recipe.Info); products = _availabilityProducts.GetMissingProducts(products); if (products.Count == 0) { Console.WriteLine("Продуктов достаточно"); return; } Console.WriteLine("Не хватает этих продуктов:"); foreach (var i in products) { Console.WriteLine(i.ToString()); } Console.WriteLine("Добавить эти продукты в список необходимых продуктов?"); var cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { foreach (var i in products) { _necessaryProducts.Add(i); } } }
public void Execute(params string[] parameters) { if (parameters.Length != 0) { Console.WriteLine("Команда не принимает параметры"); return; } Console.WriteLine("Добавить удаляемые продукты в список доступных продуктов?"); var cmd = Console.ReadLine(); if (cmd == "Y" || cmd == "y") { Dictionary <string, float> products = _necessaryProducts.ElementMerge(); foreach (var i in products) { _availabilityProducts.Add(new Commodity(i.Key, i.Value, DateTime.Today)); } } _necessaryProducts.Clear(); }
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); } }
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; } }