public PortUnit AddPort(TerminalUnit terminal) { PortUnit creatingport = new PortUnit(terminal); ATS_Ports.Add(creatingport); return(creatingport); }
private bool RegisterPortOnATS(out string result) { if (OnRegisterTerminal != null) { RegisterTermianlEventArgs eventargs = new RegisterTermianlEventArgs(); OnRegisterTerminal(this, eventargs); if (eventargs.ResultPort != null) { LinkOnATSPort = eventargs.ResultPort; result = eventargs.ResultOperationMessage; return(true); } else { LinkOnATSPort = null; result = eventargs.ResultOperationMessage; return(false); } } else { LinkOnATSPort = null; result = "Терминал не привязан к АТС!"; return(false); } }
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 = "Нету зарегистрированных терминалов на АТС!"; } } }