public void SelectTopping(int selectionIndex) { SaladToppingDisplayItem thisSelection = SaladToppingSelectionsList[selectionIndex]; if (!ToppingFooterPageModel.ExtraToppingSelected || (ToppingFooterPageModel.ExtraToppingSelected && !thisSelection.SaladToppingIsSelected)) { thisSelection.SaladToppingIsSelected = !thisSelection.SaladToppingIsSelected; //toggle topping selection. } thisSelection.SaladTopping.ToppingModifier = ToppingFooterPageModel.GetToppingModifierType(); if (thisSelection.SaladTopping.ToppingModifier == ToppingModifierType.ExtraTopping) { if (thisSelection.SaladTopping.Count == 0) { thisSelection.SaladTopping.Count = 1; } thisSelection.SaladTopping.Count++; } else if (thisSelection.SaladTopping.ToppingModifier == ToppingModifierType.NoTopping) { CurrentSalad.Toppings.RemoveTopping(thisSelection.SaladTopping.ToppingName); } if (thisSelection.SaladToppingIsSelected) { if (ToppingFooterPageModel.ExtraToppingSelected && thisSelection.SaladTopping.Count > 1 && CurrentSalad.Toppings.IsToppingAlreadyAdded(thisSelection.SaladTopping.ToppingName)) { CurrentSalad.Toppings.UpdateToppingsTotal(); //CurrentSalad.UpdateItemTotal(); } else { thisSelection.SaladTopping.SequenceSelected = CurrentSalad.Toppings.CurrentToppings.Count + 1; CurrentSalad.Toppings.AddTopping(thisSelection.SaladTopping); //CurrentSalad.UpdateItemTotal(); } } else { thisSelection.SaladTopping.SequenceSelected = 0; thisSelection.SaladTopping.ToppingModifier = ToppingModifierType.None; thisSelection.SaladTopping.Count = 0; CurrentSalad.Toppings.RemoveTopping(thisSelection.SaladTopping.ToppingName); //CurrentSalad.UpdateItemTotal(); } //Modifier buttons only work if selected before the topping is selected. At this point, //all should be reset back to black/unselected. ToppingFooterPageModel.ExtraToppingSelected = false; ToppingFooterPageModel.LiteToppingSelected = false; ToppingFooterPageModel.NoToppingSelected = false; ToppingFooterPageModel.OnSideToppingSelected = false; }
private void LoadSaladDisplayItems() { var toppingsList = MenuFood.SaladToppings.Values.ToList(); SaladToppingSelectionsList = new ObservableCollection <SaladToppingDisplayItem>(); int toppingSelectionIndex = 0; for (int i = 0; i < toppingsList.Count; i++) { if (!toppingsList[i].ForSalad) { continue; } var toppingSelection = new SaladToppingDisplayItem(this); bool toppingAlreadyOnSalad = false; if (CurrentSalad != null && CurrentSalad.Toppings != null) { foreach (var topping in CurrentSalad.Toppings.CurrentToppings) { if (topping.ToppingName == toppingsList[i].ToppingName) { toppingAlreadyOnSalad = true; toppingSelection.SaladTopping = topping; toppingSelection.SaladToppingIsSelected = true; break; } } } if (!toppingAlreadyOnSalad) { Topping newTopping = toppingsList[i]; //Initialize variable items in Topping object: newTopping.ToppingDisplayName = DisplayNames.GetToppingDisplayName(newTopping.ToppingName); newTopping.ToppingModifier = ToppingModifierType.None; newTopping.ToppingWholeHalf = ToppingWholeHalf.Whole; newTopping.SequenceSelected = 0; newTopping.Count = 1; toppingSelection.SaladTopping = newTopping; toppingSelection.SaladToppingIsSelected = false; } toppingSelection.SaladSelectionIndex = toppingSelectionIndex; toppingSelectionIndex++; SaladToppingSelectionsList.Add(toppingSelection); } }