public IDisposable Subscribe <T>(Action <T> next) where T : class, IMobileServiceEvent
        {
            Arguments.IsNotNull(next, nameof(next));

            var observer     = new MobileServiceEventObserver <T>(next);
            var subscription = new Subscription <T>(this, observer);

            return(Subscribe(subscription));
        }
        public IDisposable Subscribe <T>(Action <T> next) where T : class, IMobileServiceEvent
        {
            if (next == null)
            {
                throw new ArgumentNullException("next");
            }

            var observer     = new MobileServiceEventObserver <T>(next);
            var subscription = new Subscription <T>(this, observer);

            return(Subscribe(subscription));
        }