Beispiel #1
0
        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();
        }
Beispiel #2
0
        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));
        }