private void HandlePortCallRequest(object sender, ICallingEventArgs e) { IPort sourcePort = sender as IPort; if (_portMapping.ContainsKey(e.TargetNumber)) { IPort targetPort = _portMapping[e.TargetNumber]; if (targetPort.State == PortStates.Free) { Console.WriteLine("Station: port[{0}] transfer call from terminal {1} to terminal {2}.\n", sourcePort.PortId, e.SourceNumber, e.TargetNumber); _waitingConnection[sourcePort] = targetPort; targetPort.PortReciveCall(targetPort, e); } else { Console.WriteLine( "Station to port[{0}]: call from terminal {1} to terminal {2} turn dowm. Terminal busy or disconected.\n", sourcePort.PortId, e.SourceNumber, e.TargetNumber); sourcePort.PortReciveReject(sourcePort, e); CreateUnsuccessfulStats(e); } } else { Console.WriteLine("Station to port[{0}]: invalid target number, or number is not exist.\n", sourcePort.PortId); sourcePort.PortReciveReject(sourcePort, e); } }
private void HandleRejectRequestFromSourceTerminal(IPort port, ICallingEventArgs e) { IPort sourcePort = port; IPort targetPort = _onConnection[sourcePort]; Console.WriteLine( "Station: port[{0}] transfer reject from terminal {1} to terminal {2}.\n", sourcePort.PortId, e.SourceNumber, e.TargetNumber); _onConnection.Remove(sourcePort); targetPort.PortReciveReject(targetPort, e); }
private void HandleRejectRequestFromTargetTerminal(IPort port, ICallingEventArgs e) { IPort sourcePort = _onConnection.FirstOrDefault(x => x.Value == port).Key; IPort targetPort = port; Console.WriteLine( "Station: port[{0}] transfer reject from terminal {2} to terminal {1}.\n", targetPort.PortId, e.SourceNumber, e.TargetNumber); _onConnection.Remove(sourcePort); sourcePort.PortReciveReject(sourcePort, e); }
private void HandleIgnoreRequest(IPort port, ICallingEventArgs e) { // Ignore request only from 'target' terminal IPort targetPort = port; IPort sourcePort = _waitingConnection.FirstOrDefault(x => x.Value == port).Key; _waitingConnection.Remove(sourcePort); Console.WriteLine( "Station: port[{0}] transfer reject from terminal {2} to terminal {1}.\n", targetPort.PortId, e.SourceNumber, e.TargetNumber); sourcePort.PortReciveReject(sourcePort, e); }