protected virtual void SetUpDeterriorationTimer(KitchenShelf shelf, ShelfOrder shelfOrder) { var timer = deterriorationTimerFactory.Create(shelf, shelfOrder); timer.Elapsed += (sender, args) => { lock (shelfOrder) { if (!shelfOrder.HasTriggeredEvent) { shelfOrder.HasTriggeredEvent = true; OnOrderDeterrioration(shelf, shelfOrder); } } }; timer.Start(); shelfOrder.AddTimer(timer); }
protected virtual void SetUpCourierTimer(KitchenShelf shelf, ShelfOrder shelfOrder) { var timer = courierTimerFactory.Create(shelf, shelfOrder); timer.Elapsed += (sender, args) => { lock (shelfOrder) { if (!shelfOrder.HasTriggeredEvent) { shelfOrder.HasTriggeredEvent = true; OnCourierArrival(shelfOrder, shelf, timer); } } }; timer.Start(); shelfOrder.AddTimer(timer); }