public bool WaitForRoom(Boss boss) { Random rand = new Random(); int patience = rand.Next(0, 41); bool entered = false; Console.WriteLine(this.name + " Poczekam " + patience / 2 + " minut na wolne miejsce w poczekalni"); System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += (sender, e) => { patience--; if (patience > 0) { entered = HandleRoom(boss); if (entered == true) { Console.WriteLine(this.name + " Zanim wyszedłem pojawiło się miejsce w poczekalni. Wchodzę do poczekalni."); timer.Stop(); } } else { Console.WriteLine(this.name + " Skończyła mi się cierpliwość. Wychodzę."); entered = false; timer.Stop(); } }; timer.Interval = 500; timer.Enabled = true; return entered; }
private static void CreateClient(Boss boss, int counter) { Client client = new Client(counter, boss); if (client.manicure_wanted) Console.WriteLine("Przybył klient " + client.name + " na strzyżenie i manicure"); else Console.WriteLine("Przybył klient " + client.name + " tylko na strzyżenie"); client.Start(); }
bool HandleRoom(Boss boss) { if (boss.waiting_room.Count < boss.waiting_room.Capacity - 1) { boss.waiting_room.Add(this); return true; } else { return false; } }
public Client(int _name, Boss _boss) { name = _name; Random rand = new Random(); int temp = rand.Next(0, 3); if (temp == 0) manicure_wanted = true; else manicure_wanted = false; boss = _boss; }
static void Main(string[] args) { int counter = -1; Logic logic = new Logic(); logic.TakeNumbers(out logic.liczbaFryzjerow, out logic.liczbaManikiurzystek, out logic.pojemnoscPoczekalni); Console.WriteLine("Licbza fryzjerów: " + logic.liczbaFryzjerow); Console.WriteLine("Liczba manikiurzystek: " + logic.liczbaManikiurzystek); Console.WriteLine("Pojemność poczekalni: " + logic.pojemnoscPoczekalni); Boss szefu = new Boss(logic.liczbaFryzjerow, logic.liczbaManikiurzystek, logic.pojemnoscPoczekalni); System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += (sender, e) => { counter++; HandleTimerElapsed(szefu, counter); }; timer.Interval = 1000; timer.Enabled = true; if (Console.Read() == 'q') timer.Enabled = false; Console.ReadKey(); }
public Barber(int _name, Boss _boss) { name = _name; boss = _boss; }
static void HandleTimerElapsed(Boss boss, int counter) { CreateClient(boss, counter); }
public Manicurist(int _name, Boss _boss) { name = _name; boss = _boss; }