using System; using System.Concurrency; using System.Linq; using MahTweets.Mango.Core.Extensions.MahTweets.Core.Extensions; using MahTweets.Mango.Core.Models; namespace MahTweets.Mango.Core { public class DirectMessageStatusSubscriber : IStatusSubscriber { private readonly IScheduler _scheduler; public DirectMessageStatusSubscriber() : this(Scheduler.ThreadPool) { } public DirectMessageStatusSubscriber(IScheduler scheduler) { _scheduler = scheduler; } public IDisposable Subscribe(IObservable source, IObserver target) { return source .ObserveOn(_scheduler) .Where(update => update.Types.HasType("Direct Message")) .Subscribe(target); } public string SubscriberName { get { return SubscriberNames.DirectMessages; } } } }