protected void NewContract(object sender, ITerminal terminal) { var freePort = _PortsIsAvailable.FirstOrDefault(x => x.Value == true).Key; if (freePort != null) { _RoutingPorts.Add(terminal.Number, freePort); _PortsIsAvailable[freePort] = false; _Terminals.Add(terminal); terminal.ConnectToPort(freePort); RegisterOnPortEvent(freePort); _Logger.WriteToLog("-> New terminal on number " + terminal.Number.GetValue + " get port"); } }