public void SomeTerminalCall(object sender, CallTerminalEventArgs eventargs)
        {
            if (sender is TerminalUnit)
            {
                Console.WriteLine("Терминал с номером:{0} хочет позвонить по номеру:{1}", (sender as TerminalUnit).AbonentNumber, eventargs.CallNumber);
                eventargs.ResultOperationMessage = "Все нормально!";
                if (ATS_Ports.Count > 0)
                {
                    PortUnit searchport = ATS_Ports.Find(x => x.Terminal.AbonentNumber == eventargs.CallNumber);
                    if (searchport != null)
                    {
                        switch (searchport.PortStatus)
                        {
                        case PortStatusEnum.ON:
                            (sender as TerminalUnit).LinkOnATSPort.PortStatus = PortStatusEnum.CALL;
                            searchport.PortStatus            = PortStatusEnum.WAIT_FOR_ANSWER;
                            searchport.whoCall               = (sender as TerminalUnit);
                            eventargs.ResultOperationMessage = "Абонент дозванивается!";
                            break;

                        case PortStatusEnum.OFF:
                            eventargs.ResultOperationMessage = "Абонент недоступен! Позвоните позже!";
                            break;

                        case PortStatusEnum.WAIT_FOR_ANSWER:
                        case PortStatusEnum.BUSY:
                            eventargs.ResultOperationMessage = "Абонент занят!";
                            break;

                        default:
                            break;
                        }
                    }
                    else
                    {
                        Console.WriteLine("Такого номера не существует!");
                    }
                }
                else
                {
                    eventargs.ResultOperationMessage = "Нету зарегистрированных терминалов на АТС!";
                }
            }
        }
Esempio n. 2
0
 public void Call(out string result, int call_number, DateTime start_call_time)
 {
     if (call_number == AbonentNumber)
     {
         result = "Звонок самому себе!";
     }
     else if (OnCall != null)
     {
         if (LinkOnATSPort.PortStatus == PortStatusEnum.ON)
         {
             CallTerminalEventArgs eventargs = new CallTerminalEventArgs(call_number, start_call_time);
             OnCall(this, eventargs);
             result = eventargs.ResultOperationMessage;
         }
         else
         {
             result = "Терминал не готов звонить!";
         }
     }
     else
     {
         result = "Терминал не зарегистрирован!";
     }
 }