public List <DTOIngredient> ValidateIngredients(ICollection <DTOIngredient> ingredients, out string error) { var result = new List <DTOIngredient>(); error = null; foreach (var ingredient in ingredients) { if (ingredient.Size.Id != this.Id) { error += Texts.Instance.IngredientCorrespondsToAnotherPosition(ingredient.Consumable.Name) + " /n"; continue; } if (Ingredient.DoesIngredientExist(ingredient, result, out string existError)) { error += existError + " /n"; continue; } if (Ingredient.DoesConsumableExist(ingredient, result, out existError)) { error += existError + " /n"; continue; } result.Add(ingredient); } return(result); }
public void DoesIngredientExistFail_DTOList() { var ingredient1 = new DTOIngredient(1, 1, new Size(1, "1", new Money(1), new Position(1, "1", "1")), new DTO.Consumable(1, "1", 1)); var ingredient2 = new DTOIngredient(2, 1, new Size(1, "1", new Money(1), new Position(1, "1", "1")), new DTO.Consumable(2, "2", 1)); var ingredient3 = new DTOIngredient(3, 1, new Size(1, "1", new Money(1), new Position(1, "1", "1")), new DTO.Consumable(3, "3", 1)); var ingredients = new List <DTOIngredient>() { ingredient1, ingredient2 }; var result = Ingredient.DoesIngredientExist(ingredient3, ingredients, out var error); Assert.IsFalse(result); Assert.AreEqual($"Ingredient {ingredient3.Consumable.Name} cannot be found", error); }
public void DoesIngredientExistSuccess_DTOList() { var ingredient1 = new DTOIngredient(1, 1, new Size(1, "1", new Money(1), new Position(1, "1", "1")), new DTO.Consumable(1, "1", 1)); var ingredient2 = new DTOIngredient(2, 1, new Size(1, "1", new Money(1), new Position(1, "1", "1")), new DTO.Consumable(2, "2", 1)); var ingredient3 = new DTOIngredient(1, 1, new Size(1, "1", new Money(1), new Position(1, "1", "1")), new DTO.Consumable(3, "3", 1)); var ingredients = new List <DTOIngredient>() { ingredient1, ingredient2 }; var result = Ingredient.DoesIngredientExist(ingredient3, ingredients, out var error); Assert.IsTrue(result); Assert.AreEqual($"Ingredient {ingredient3.Consumable.Name} already exists", error); }