private static void AddIngredientPreparation(int ingredientId, double amount)
 {
     foreach (IngredientSet ingredientSet in IngredientSet.GetAll(ingredientId))
     {
         Ingredient ingredient = Ingredient.Get(ingredientSet.IngredientId);
         ingredient.SetInventoryAmount(ingredient.InventoryAmount - amount);
         ingredient.Update();
     }
 }
        private void InitializeFields()
        {
            int oldCount = listBoxItemIngredients.Items.Count;

            listBoxAvailableIngredients.Items.Clear();
            listBoxItemIngredients.Items.Clear();

            List <Ingredient> ingredients = new List <Ingredient>(Ingredient.GetAll());

            if (ActiveIngredient != null)
            {
                foreach (IngredientSet setIngredient in IngredientSet.GetAll(ActiveIngredient.Id))
                {
                    bool          added, changed, removed;
                    IngredientSet current = GetIngredientSet(setIngredient.Id,
                                                             out added, out changed, out removed);
                    if (!removed)
                    {
                        Ingredient ingredient = Ingredient.Find(ingredients, setIngredient.IngredientId);
                        AddIngredientSetToListBox(
                            (changed ? current : setIngredient), ingredient);
                        ingredients.Remove(ingredient);
                    }
                }
            }

            // Note: Added ones have an ExtendedIngredientId of zero so GetAll (above) will not find them
            foreach (IngredientSet setIngredient in _ingredientSetsAdded)
            {
                Ingredient ingredient = Ingredient.Find(ingredients, setIngredient.IngredientId);
                AddIngredientSetToListBox(setIngredient, ingredient);
                ingredients.Remove(ingredient);
            }

            if (ActiveIngredient != null)
            {
                foreach (Ingredient ingredient in ingredients)
                {
                    if ((ingredient.Id == ActiveIngredient.Id) ||
                        ActiveIngredient.ContainsIngredient(ingredient.Id))
                    {
                        continue;
                    }
                    listBoxAvailableIngredients.Items.Add(
                        new FormattedListBoxItem(ingredient.Id,
                                                 ingredient.FullName, true));
                }
            }
            SetReadOnly();
            SetupButtons();
            ProcessEvents(oldCount);
        }
Beispiel #3
0
 private void ProcessInventoryChangesForPrepIngredients(double originalAmount, double newAmount)
 {
     if ((Math.Abs(originalAmount - newAmount) < double.Epsilon) || !ActiveIngredient.ExtendedIngredientYield.HasValue)
     {
         return;
     }
     foreach (IngredientSet ingredientSet in IngredientSet.GetAll(ActiveIngredient.Id))
     {
         Ingredient prepIngredient = Ingredient.Get(ingredientSet.IngredientId);
         double     difference     = newAmount - originalAmount;
         double     amount         = UnitConversion.Convert(ingredientSet.Amount, ingredientSet.MeasurementUnit,
                                                            prepIngredient.MeasurementUnit) * difference / ActiveIngredient.ExtendedIngredientYield.Value;
         prepIngredient.SetInventoryAmount(prepIngredient.InventoryAmount - amount);
         prepIngredient.Update();
         if (ModifiedIngredient != null)
         {
             ModifiedIngredient.Invoke(prepIngredient, new EventArgs());
         }
     }
 }