Пример #1
0
        /// <summary>
        /// Adds the new ingredient for the recipe after clicking the addIngredient button.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddIngredientToRecipe_Click(object sender, RoutedEventArgs e) //dodaje nowy składnik na listę roboczą 'list'
        {
            lstIngredients.Items.Clear();                                             //czyści listę składników, przed wypełnieniem jej jej aktualną wersją

            AbstractIngredientFactory factory = FactoryPicker.Instance.Pick(cmbIngredientList.SelectedItem.ToString());
            //wybiera odpowiednią fabrykę na podstawie wybranej nazwy
            AbstractIngredient ingredient = factory.Create(Convert.ToDouble(txtAmount.Text));

            //tworzy nowy składnik z parametrami podanymi w formularzu przez użytkownika
            list.Add(ingredient); //dodaje nowy składnik na listę roboczą
            FillTheList();        //wypełnia listę składników na liście roboczej na nowo
        }
Пример #2
0
        public AbstractIngredientFactory Pick(string ingredientName)
        {                                       //dobiera fabrykę na podstawie jej nazwy zakodowanej w bazie danych
            AbstractIngredientFactory pickedFactory = null;

            foreach (AbstractIngredientFactory IF in listOfFactories)   //porównuje nazwę każdej fabryki z listy z nazwą podanego
            {                                                           //składnika
                if (ingredientName == IF.Name)
                {
                    pickedFactory = IF;
                    return(pickedFactory);
                }
            }
            return(pickedFactory);    //zwraca wybraną fabrykę
        }