diff options
Diffstat (limited to 'wasm/BlazingPizza.Client/OrderState.cs')
-rw-r--r-- | wasm/BlazingPizza.Client/OrderState.cs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/wasm/BlazingPizza.Client/OrderState.cs b/wasm/BlazingPizza.Client/OrderState.cs new file mode 100644 index 0000000..ac0d074 --- /dev/null +++ b/wasm/BlazingPizza.Client/OrderState.cs @@ -0,0 +1,56 @@ +using System.Collections.Generic; + +namespace BlazingPizza.Client +{ + public class OrderState + { + public bool ShowingConfigureDialog { get; private set; } + + public Pizza ConfiguringPizza { get; private set; } + + public Order Order { get; private set; } = new Order(); + + public void ShowConfigurePizzaDialog(PizzaSpecial special) + { + ConfiguringPizza = new Pizza() + { + Special = special, + SpecialId = special.Id, + Size = Pizza.DefaultSize, + Toppings = new List<PizzaTopping>(), + }; + + ShowingConfigureDialog = true; + } + + public void CancelConfigurePizzaDialog() + { + ConfiguringPizza = null; + + ShowingConfigureDialog = false; + } + + public void ConfirmConfigurePizzaDialog() + { + Order.Pizzas.Add(ConfiguringPizza); + ConfiguringPizza = null; + + ShowingConfigureDialog = false; + } + + public void RemoveConfiguredPizza(Pizza pizza) + { + Order.Pizzas.Remove(pizza); + } + + public void ResetOrder() + { + Order = new Order(); + } + + public void ReplaceOrder(Order order) + { + Order = order; + } + } +} |