コード例 #1
0
        private static void ConsultantAction(CallCenter center,
                                             string name, ConsoleColor color)
        {
            Random random = new Random();

            while (true)
            {
                IncommingCall call = center.Answer(name);

                if (call == null)
                {
                    Thread.Sleep(100);
                    continue;
                }

                Console.ForegroundColor = color;
                Log($"Call #{call.Id} from {call.ClientId} is answered  by {call.Consultant}.");
                Console.ForegroundColor = ConsoleColor.Gray;

                Thread.Sleep(random.Next(1000, 10000));
                center.End(call);

                Console.ForegroundColor = color;
                Log($"Call #{call.Id} from {call.ClientId} is ended by {call.Consultant}.");
                Console.ForegroundColor = ConsoleColor.Gray;

                Thread.Sleep(random.Next(500, 1000));
            }
        }
コード例 #2
0
        public int Call(int clientId)
        {
            IncommingCall call = new IncommingCall()
            {
                Id       = _count++,
                ClientId = clientId,
                CallTime = DateTime.Now
            };

            Calls.Enqueue(call);
            return(this.Calls.Count);
        }
コード例 #3
0
 public void End(IncommingCall call)
 {
     call.EndTime = DateTime.Now;
 }