Пример #1
0
        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;
        }
Пример #2
0
        private static void CreateClient(Boss boss, int counter)
        {
            Client client = new Client(counter);
            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");

            boss.TakeClient(client);
        }
Пример #3
0
        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 boss = new Boss(logic.liczbaFryzjerow, logic.liczbaManikiurzystek, logic.pojemnoscPoczekalni);

            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Elapsed += (sender, e) => { counter++; HandleTimerElapsed(boss, counter);  };
            timer.Interval = 1000;
            timer.Enabled = true;

            if (Console.Read() == 'q')
                timer.Enabled = false;

            Console.ReadKey();
        }
Пример #4
0
 static void HandleTimerElapsed(Boss boss, int counter)
 {
     CreateClient(boss, counter);
 }
Пример #5
0
 bool HandleRoom(Boss boss)
 {
     if(boss.waiting_room.Count < boss.waiting_room.Capacity - 1)
     {
         boss.waiting_room.Add(this);
         return true;
     }
     else
     {
         return false;
     }
 }