private void StartNewTimer(Pizza pizzaForThisTimer) { var timer = new PizzaTimer { Interval = 1000, Data = pizzaForThisTimer }; timer.Elapsed += timer_Elapsed; timer.Start(); }
void timer_Elapsed(object sender, ElapsedEventArgs e) { PizzaTimer timer = (PizzaTimer)sender; var pizza = timer.Data; pizza.TimeToBake--; if (pizza.TimeToBake == 0) { State.AllOrders.First(foundPizza => foundPizza.Id.Equals(pizza.Id)).Status = PizzaStatus.Completed; State.AllOrders = State.AllOrders.Where(pizzaOrder => !pizzaOrder.Id.Equals(pizza.Id)).ToList(); timer.Stop(); Device.BeginInvokeOnMainThread(async() => { await _dialogService.DisplayAlertAsync("Warm and ready", $"Your order {pizza.Id} has been backed and is coming to you right now", "OK"); }); } }