public void AddInput(IInput <Message> transport) { var res = observers.Find(x => x.TransportName.Equals(transport.GetName())); if (!(res is null)) { return; } var tobserver = new InputObserver <Message>(transport.GetName()); tobserver.Subscribe(transport); tobserver.NextReceived += OnNext; tobserver.Completed += OnCompleted; tobserver.ExceptionReceived += OnException; observers.Add(tobserver); }