/// <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 }
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ę }