CmisSync.Lib.Producer.ContentChange.ContentChangeEventAccumulator.Handle C# (CSharp) Метод

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

Handle the specified e.
public Handle ( ISyncEvent e ) : bool
e ISyncEvent /// The ISyncEvent. ///
Результат bool
        public override bool Handle(ISyncEvent e) {
            if (!(e is ContentChangeEvent)) {
                return false;
            }

            var contentChangeEvent = e as ContentChangeEvent;
            if (contentChangeEvent.Type != DotCMIS.Enums.ChangeType.Deleted && contentChangeEvent.CmisObject == null) {
                try {
                    contentChangeEvent.UpdateObject(this.session);
                    Logger.Debug("Updated Object in contentChangeEvent" + contentChangeEvent.ToString());
                } catch(CmisObjectNotFoundException) {
                    Logger.Debug("Object with id " + contentChangeEvent.ObjectId + " has been deleted - ignore"); 
                    return true;
                } catch(CmisPermissionDeniedException) {
                    Logger.Debug("Object with id " + contentChangeEvent.ObjectId + " gives Access Denied: ACL changed - ignore"); 
                    return true;
                } catch(Exception ex) {
                    Logger.Warn("Unable to fetch object " + contentChangeEvent.ObjectId + " starting CrawlSync");
                    Logger.Debug(ex.StackTrace);
                    Queue.AddEvent(new StartNextSyncEvent(true));
                    return true;
                }
            }

            return false;
        }
    }

Usage Example

        public void DocumentDeletionNotAccumulated() {
            var session = new Mock<ISession>();
            var contentChange = new ContentChangeEvent(DotCMIS.Enums.ChangeType.Deleted, Id);
            var accumulator = new ContentChangeEventAccumulator(session.Object, new Mock<ISyncEventQueue>().Object);

            accumulator.Handle(contentChange);
            Assert.That(contentChange.CmisObject, Is.Null);
            session.Verify(foo => foo.GetObject(It.IsAny<string>()), Times.Never());
        }
All Usage Examples Of CmisSync.Lib.Producer.ContentChange.ContentChangeEventAccumulator::Handle
ContentChangeEventAccumulator