public async Task AddIngredient()
        {
            NewIngredientDialog dialog = new NewIngredientDialog();
            dialog.Title = "Enter Name and Type";
            await dialog.ShowAsync();

            string name = dialog.TextEntry;
            IngredientType type = (IngredientType)Enum.Parse(typeof(IngredientType), dialog.SelectedType);
            Ingredient newIngredient = new Ingredient(name, type);

            Recipe.AddIngredient(newIngredient);

        }
        public static void AdjustItemWeights(Ingredient sender, double newWeight,  ObservableCollection<Ingredient> items )
        {
            double oldWeight = sender.GetExactWeight();
            double weightAdjustRatio = newWeight / oldWeight;
            

            for (int i = 0; i < items.Count; i++)
            {
                Ingredient ingredient = items[i];
                double updatedWeight = ingredient.GetExactWeight() * weightAdjustRatio;
                ingredient.AdjustWeight(updatedWeight);
                
            }
            
        }
示例#3
0
 public void AdjustAllWeights(Ingredient sender, double newWeight)
 {
     ValueAdjusters.AdjustItemWeights(sender, newWeight, ingredients);
     totalWeight = ingredients.Sum(i => i.GetExactWeight());
     RaisePropertyChanged("TotalWeight");
 }
示例#4
0
 public void DeleteIngredient(Ingredient ingredient)
 {
     if (ingredients.Contains(ingredient))
     {
         ingredients.Remove(ingredient);
         return;
     }
     BalancePercentages();
     CalculateHydration();
     RaisePropertyChanged("Ingredients");
 }
示例#5
0
 private void LinkEvents(Ingredient i)
 {
     i.PercentChanged += AdjustItemPercentages;
     i.WeightChanged += AdjustAllWeights;
     i.DeleteMe += DeleteIngredient;
 }
示例#6
0
 public void AddIngredientWithWeight(Ingredient i)
 {
     LinkEvents(i);
     TotalWeight += i.Weight;
     Ingredients.Add(i);
     BalancePercentages();
 }
示例#7
0
 public void AddIngredient(Ingredient i)
 {
     i.Percent = 1;
     LinkEvents(i);
     Ingredients.Add(i);
     BalancePercentages();
     CalculateHydration();
     i.DeleteMe += DeleteIngredient;
 }
示例#8
0
 private void AddChildIngredient_Click(object sender, RoutedEventArgs e)
 {
     Ingredient newIngredient = new Ingredient("Ingredient", IngredientType.Miscellaneous);
     AddIngredient(newIngredient);
 }
示例#9
0
 public void DeleteChild(Ingredient child)
 {
     bool found = false;
     if (ingredients.Contains(child))
     {
         ingredients.Remove(child);
         BalancePercentages();                
     }            
 }
示例#10
0
        public bool AddIngredient(Ingredient add = null)
        {
            if (ingredients == null) ingredients = new ObservableCollection<Ingredient>();

            if (add == null)//__create new ingredient with defaults
            {
                add = new Ingredient("Ingredient", IngredientType.Miscellaneous);
            }

            if (ingredients.Any(i => i.Name == add.Name)) add.Name+="_1";

            add.PercentChanged += AdjustIngredientPercentages;
            add.WeightChanged += WeightChanged;
            add.UpdateHydration += UpdateHydration;
            add.DeleteMe += DeleteChild;

            Ingredients.Add(add);
            BalancePercentages();
            ShowChildren = true;
            RaisePropertyChanged("Ingredients");
            hasChildren = true;
            return true;
        }
示例#11
0
        public static void SetChildWeightsFromPercentage( Ingredient parentIngredient)
        {
            var children = parentIngredient.Ingredients;
            if (children == null) return;
            double totalWeight = parentIngredient.GetExactWeight();

            foreach (var child in children) child.AdjustWeight(child.GetExactPercent() * totalWeight);

        }