public IObservable <MessageEntity> UserMessages(long userId) { var obs = DbObservable <BiContext> .FromInserted <MessageEntity>() .Where(m => m.Entity.Group.UsersList.Any(u => u.UserId == m.Entity.UserId)) .Select(n => n.Entity); return(obs); }
public CompanyNotifier() { eventObservable = DbObservable <BiContext> .FromInserted <EventEntity>() .Where(entry => entry.Entity.Body is CompanyEvent); // eventObservable.Where(entry => entry.Entity.Body is CompanyUpdatedEvt) // .Subscribe(onUpdated); }
private static void ObserveNewPeople() { Console.WriteLine("thread"); var o = DbObservable <Context> .FromInserted <Person>(); using (var p = o.Where(x => x.Entity.DateOfBirth.Month == DateTime.Today.Month && x.Entity.DateOfBirth.Day == DateTime.Today.Day) .Subscribe(entry => Console.WriteLine($"Happy birthday to {entry.Entity.Name}!"))) { Thread.Sleep(5000); } }
private static void ObserveNewBlog() { Console.WriteLine("thread"); var o = DbObservable <BloggingContext> .FromInserted <Blog>(); o.Where(x => x.Entity.DateOfBirth.Month == DateTime.Today.Month && x.Entity.DateOfBirth.Day == DateTime.Today.Day) .Subscribe(entry => Console.WriteLine($"Happy birthday to {entry.Entity.Url}!")); o.Subscribe(entry => Console.WriteLine(entry.Entity)); Thread.Sleep(500); }
private void ConfigureServices() { DbObservable <AlarmEntity, LocalDbContext> .FromInserted() .Merge <IEntry>(DbObservable <AlarmEntity, LocalDbContext> .FromDeleted()) .Merge(DbObservable <AlarmEntity, LocalDbContext> .FromUpdated()) .Cast <object>() .Merge(DbObservable <LessonEntity, LocalDbContext> .FromInserted()) .Merge(DbObservable <LessonEntity, LocalDbContext> .FromUpdated()) .Merge(DbObservable <LessonEntity, LocalDbContext> .FromDeleted()) .TakeUntil(_destroySubject) .ObserveOnDispatcher(DispatcherPriority.Background) .Subscribe(_ => StartTimer()); StartTimer(); StartBackupService(); }
public IObservable <IEnumerable <DbChange <T> > > ChangeListener <T>(int delayMs = 1000) where T : class { var changeSource = Observable.Merge ( DbObservable <GeneralDbContext> .FromInserted <T>() .Select(entry => new DbChange <T>(entry.Entity, ChangeReason.Insert)), DbObservable <GeneralDbContext> .FromDeleted <T>() .Select(entry => new DbChange <T>(entry.Entity, ChangeReason.Delete)), DbObservable <GeneralDbContext> .FromUpdated <T>() .Select(entry => new DbChange <T>(entry.Entity, ChangeReason.Update)) ); var throttle = changeSource.Throttle(TimeSpan.FromMilliseconds(delayMs)); return(changeSource.Buffer(throttle)); }
private void Initialize() { // Random rnd = new Random(); joueurSpidObserveInserted = DbObservable <OldPingDbContext> .FromInserted <Joueur>(); joueurSpidObserveInserted.Subscribe(entry => { var joueur = entry.Entity; var extra = new JoueurExtra() { Licence = joueur.Licence }; joueur.Extra = extra; }); /* organismeObserveInserted = DbObservable<PingDbContext>.FromInserted<Organisme>(); * organismeObserveInserted.Subscribe(entry => * { * entry.Entity.Id = rnd.Next().ToString(); * });*/ }
public ReportNotifier() { var eventObs = DbObservable <BiContext> .FromInserted <EventEntity>(); eventObs.Where(evt => evt.Entity.Body is ReportUpdatedEvt).Subscribe(OnUpdated); }
public IObservable <NotificationEntity> Listen(long userId) { return(DbObservable <BiContext> .FromInserted <NotificationEntity>() .Where(n => n.Entity.Receivers.Any(u => u.UserId == userId)) .Select(n => n.Entity)); }