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 = "Нету зарегистрированных терминалов на АТС!"; } } }
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 = "Терминал не зарегистрирован!"; } }