private void ProcessMajorToppingSelection(ToppingDisplayItem majorSelection) { if (majorSelection.ListItemIsSelected) { majorSelection.SelectionColor = Xamarin.Forms.Color.CornflowerBlue; if (majorSelection.ButtonASelected || majorSelection.ButtonBSelected) { ProcessHalfMajorSelectionOfSide(majorSelection); } else { majorSelection.ButtonWSelected = true; ThisPizza.MajorMamaInfo = MajorOrMama.Major; ThisPizza.PopulateDisplayName(); //Updates to show MAJOR SelectMajorToppings(); ThisPizza.Toppings.AddMajorToppings(); } } else { majorSelection.SelectionColor = Xamarin.Forms.Color.Black; majorSelection.ButtonWSelected = false; majorSelection.ButtonASelected = false; majorSelection.ButtonBSelected = false; ThisPizza.MajorMamaInfo = MajorOrMama.Neither; ThisPizza.PopulateDisplayName(); //Updates to remove MAJOR ThisPizza.Toppings.RemoveToppings(new List <ToppingName> { ToppingName.Mushrooms, ToppingName.BlackOlives, ToppingName.GreenPeppers, ToppingName.Onion, ToppingName.Pepperoni, ToppingName.Sausage }); foreach (var toppingSelection in ToppingSelectionsList) { if (toppingSelection.ListTopping.ToppingName == ToppingName.Mushrooms || toppingSelection.ListTopping.ToppingName == ToppingName.GreenPeppers || toppingSelection.ListTopping.ToppingName == ToppingName.Onion || toppingSelection.ListTopping.ToppingName == ToppingName.Pepperoni || toppingSelection.ListTopping.ToppingName == ToppingName.Sausage || toppingSelection.ListTopping.ToppingName == ToppingName.BlackOlives) { toppingSelection.ButtonWSelected = false; toppingSelection.ButtonASelected = false; toppingSelection.ButtonBSelected = false; toppingSelection.ListItemIsSelected = false; toppingSelection.SelectionColor = Xamarin.Forms.Color.Black; } } } }
public void SelectTopping(int selectionIndex) { //Can't change ListView directly - must change underlying data. Get this data by the index. ToppingDisplayItem thisSelection = ToppingSelectionsList[selectionIndex]; if (!ToppingFooterPageModel.ExtraToppingSelected || (ToppingFooterPageModel.ExtraToppingSelected && !thisSelection.ListItemIsSelected)) { thisSelection.ListItemIsSelected = !thisSelection.ListItemIsSelected; //toggle topping selection. } thisSelection.ListTopping.ToppingModifier = ToppingFooterPageModel.GetToppingModifierType(); if (thisSelection.ListTopping.ToppingName == ToppingName.Major) { ProcessMajorToppingSelection(thisSelection); } //else if (thisSelection.ListTopping.ToppingName == ToppingName.HalfMajor) //{ // ProcessHalfMajorToppingSelection(thisSelection); //} else { if (ToppingFooterPageModel.ExtraToppingSelected) { if (thisSelection.ListTopping.Count == 0) { thisSelection.ListTopping.Count = 1; } thisSelection.ListTopping.Count++; } else if (ToppingFooterPageModel.NoToppingSelected) { thisPizza.Toppings.RemoveTopping(thisSelection.ListTopping.ToppingName); } if (thisSelection.ListItemIsSelected) { if (thisSelection.ListTopping.ToppingName == ToppingName.SatchPanSlice) { ThisPizza.ChangePizzaToDeep(); OnChangeHeadingPizzaName(); } else if (ToppingFooterPageModel.ExtraToppingSelected && thisSelection.ListTopping.Count > 1 && ThisPizza.Toppings.IsToppingAlreadyAdded(thisSelection.ListTopping.ToppingName)) { ThisPizza.Toppings.UpdateToppingsTotal(); ThisPizza.UpdateItemTotal(); thisSelection.SelectionColor = Xamarin.Forms.Color.CornflowerBlue; thisSelection.ButtonWSelected = true; } else { thisSelection.ListTopping.SequenceSelected = ThisPizza.Toppings.CurrentToppings.Count + 1; ThisPizza.Toppings.AddTopping(thisSelection.ListTopping); ThisPizza.UpdateItemTotal(); thisSelection.SelectionColor = Xamarin.Forms.Color.CornflowerBlue; thisSelection.ButtonWSelected = true; } } else { if (thisSelection.ListTopping.ToppingName == ToppingName.SatchPanSlice && ThisPizza.PizzaType == PizzaType.PanSlice) { ThisPizza.ChangePizzaSliceFromPanToThin(); OnChangeHeadingPizzaName(); } thisSelection.ListTopping.SequenceSelected = 0; thisSelection.ListTopping.ToppingModifier = ToppingModifierType.None; thisSelection.ListTopping.Count = 0; ThisPizza.Toppings.RemoveTopping(thisSelection.ListTopping.ToppingName); thisSelection.SelectionColor = Xamarin.Forms.Color.Black; thisSelection.ButtonASelected = false; thisSelection.ButtonBSelected = false; thisSelection.ButtonWSelected = false; } //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; } //Can't remember why I might need this.... //if (thisSelection.ListTopping.ToppingName == ToppingName.Cheese) //{ // if (App.AllToppings.ContainsKey(ToppingName.NoCheese)) // { // thisPizza.Toppings.AddTopping(App.AllToppings[ToppingName.NoCheese]); // } //} //else if (thisSelection.ListTopping.ToppingName == ToppingName.RicottaCalzone || // thisSelection.ListTopping.ToppingName == ToppingName.Ricotta) //{ // if (App.AllToppings.ContainsKey(ToppingName.NoRicotta)) // { // thisPizza.Toppings.AddTopping(App.AllToppings[ToppingName.NoRicotta]); // } //} }