/// <summary> /// Checks to see if this ingredient contains another ingredient /// </summary> /// <param name="ingredientId"></param> /// <returns></returns> public bool ContainsIngredient(int ingredientId) { if (!IngredientSet.HasEntries(Id)) { return(false); } foreach (IngredientSet ingredientSet in IngredientSet.GetAll(Id)) { Ingredient ingredient = Ingredient.Get(ingredientSet.IngredientId); if ((ingredientId == ingredient.Id) || (ingredient.ContainsIngredient(ingredientId))) { return(true); } } return(false); }
/// <summary> /// Will either use the cost of its ingredients, if this is /// a prepared ingredient, else returns this.CostPerUnit /// </summary> /// <returns></returns> public double GetActualCostPerUnit() { if (!IngredientSet.HasEntries(Id)) { return(CostPerUnit); } double result = 0; foreach (IngredientSet ingredientSet in IngredientSet.GetAll(Id)) { Ingredient ingredient = Ingredient.Get(ingredientSet.IngredientId); double amountInInventoryUnits = UnitConversion.Convert(ingredientSet.Amount, ingredientSet.MeasurementUnit, ingredient.MeasurementUnit); result += (amountInInventoryUnits * ingredient.GetActualCostPerUnit()); } return(result); }