public void TestMethod1()
        {
            var pizzas = new List <Pizza>();

            pizzas.Add(new Pizza {
                Id = 1, Status = PizzaStatus.Bake
            });
            pizzas.Add(new Pizza {
                Id = 2, Status = PizzaStatus.Bake
            });
            var order = new Order {
                CustomerName = "test", Pizza = pizzas
            };

            var pizzaStatemachine = new PizzaStateMachine(pizzas.First());
            //pizzaStatemachine.Fire(Up);
        }
        async Task <bool> IPizzaGrain.SetupPizza(int orderId, Pizza pizza)
        {
            var pizzaStateMachine = new PizzaStateMachine(pizza);
            var grain             = GrainFactory.GetGrain <IOrderGrain>(orderId);

            _logger.LogInformation($"I am a pizza grain");
            while (pizza.Status != PizzaStatus.PackagedForDelivery)
            {
                Thread.Sleep(TimeSpan.FromSeconds(5));
                pizzaStateMachine.Fire(Trigger.UpdatePizza);

                await grain.UpdateOrder(pizza);
            }
            await grain.UpdateOrder(pizza);


            return(await Task.FromResult(true));
        }