public void LookingForTable(Chairs chair, Patron patron, Glases glases, ConcurrentQueue <Patron> chairQueue) { Thread.Sleep(wp.getTimeForPatronToGoToTheTable()); chairQueue.TryPeek(out Patron tester); if (tester != null) { if (chair.NumberOfEmptyChairs > 0 && patron.patronName == tester.patronName) { chairQueue.TryDequeue(out Patron pong); chair.NumberOfEmptyChairs--; Thread.Sleep(wp.getTimePourBeer()); DrinkingBeer?.Invoke(patron); // drinks beer Thread.Sleep(wp.getTimeToDrinkTheBeer()); glases.NumberOfEmptyGlases++; LeavingThePub?.Invoke(patron); } } if (boolvalue) { while (true) { boolvalue = false; LookingForTable(chair, patron, glases, chairQueue); } } }
public void Waitering(Glases glases) { if (glases.NumberOfEmptyGlases > 0) { while (glases.NumberOfEmptyGlases > 0) { glases.NumberOfEmptyGlases--; NumberOfGlasesInTheHand++; } LookingForDirtyGlas?.Invoke(NumberOfGlasesInTheHand); Thread.Sleep(wp.getTimeToCollectGlasses()); while (NumberOfGlasesInTheHand > 0) { NumberOfGlasesInTheHand--; glases.NumberOfGlasesOnShelf++; } LeavingCleanGlas?.Invoke(0); Thread.Sleep(wp.getTimeToWashGlasses()); } }