using System; using System.Concurrency; using System.Linq; using MahTweets.Mango.Core.Models; using MahTweets.Mango.Core.UpdateTypes; namespace MahTweets.Mango.Core { public class AcceptAllSubscriber : IStatusSubscriber { private readonly IScheduler _scheduler; public AcceptAllSubscriber() : this(Scheduler.ThreadPool) { } public AcceptAllSubscriber(IScheduler scheduler) { _scheduler = scheduler; } public IDisposable Subscribe(IObservable source, IObserver target) { return source .ObserveOn(_scheduler) .Where(s => { var x = s.Types.Where(t => t is NotInEverything); return !x.Any(); }) .Subscribe(target); } public string SubscriberName { get { return SubscriberNames.All; } } } }