public static void TrackIsNew(IScheduler scheduler, NotifyValue <Mail> current) { current .Do(_ => { if (current.Value != null) { current.Value.IsEdited = false; } }) .Throttle(3.Second(), scheduler) .Select(_ => current.Value) .Where(v => v != null && v.IsNew && !v.IsEdited) .Subscribe(v => { v.IsNew = false; }); }