public Task <TResponseType> GetResponse(Predicate <TResponseType> filter) { return(_communicator.GetResponseStream().VerifyConnected(CurrentStatus) .Select(TryDeSerialize) .Where(payLoad => payLoad != null && filter(payLoad)) .FirstAsync().ToTask()); }