CmisSync.Lib.Queueing.DelayRetryAndNextSyncEventHandler.Handle C# (CSharp) Метод

Handle() публичный Метод

Handle the specified e if AbstractFolderEvent or StartNextSyncEvent.
public Handle ( ISyncEvent e ) : bool
e ISyncEvent /// The ISyncEvent. ///
Результат bool
        public override bool Handle(ISyncEvent e) {
            bool isEventDelayed = false;

            if (e is AbstractFolderEvent) {
                isEventDelayed = this.DelayEventIfRetryCountPositive(e as AbstractFolderEvent);
            }

            if (e is StartNextSyncEvent) {
                if (this.SyncHasToBeDelayed()) {
                    this.DelayNextSyncEvent(e as StartNextSyncEvent);
                    isEventDelayed = true;
                }
            }

            this.FireDelayedEventsIfQueueIsEmpty();

            return isEventDelayed;
        }

Usage Example

        public void DelaysNextSyncEventUntilQueueEmpty() {
            var queue = new Mock<ISyncEventQueue>();
            var underTest = new DelayRetryAndNextSyncEventHandler(queue.Object);
            queue.Setup(q => q.IsEmpty).Returns(false);

            Assert.True(underTest.Handle(new StartNextSyncEvent()));
            queue.Setup(q => q.IsEmpty).Returns(true);

            Assert.False(underTest.Handle(Mock.Of<ISyncEvent>()));
            queue.Verify(q => q.AddEvent(It.Is<StartNextSyncEvent>(e => e.FullSyncRequested == false)));
        }
All Usage Examples Of CmisSync.Lib.Queueing.DelayRetryAndNextSyncEventHandler::Handle