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

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

Handle the specified e.
/// Is thrown when an operation cannot be performed. ///
public Handle ( ISyncEvent e ) : bool
e ISyncEvent /// The ISyncEvent only handled when ContentChangeEvent ///
Результат bool
        public override bool Handle(ISyncEvent e) {
            if (!(e is ContentChangeEvent)) {
                return false;
            }

            Logger.Debug("Handling ContentChangeEvent");

            var contentChangeEvent = e as ContentChangeEvent;
            if (contentChangeEvent.Type != DotCMIS.Enums.ChangeType.Deleted && contentChangeEvent.CmisObject == null) {
                throw new InvalidOperationException("ERROR, ContentChangeEventAccumulator Missing");
            }

            if (contentChangeEvent.Type == DotCMIS.Enums.ChangeType.Deleted) {
                this.HandleDeletion(contentChangeEvent);
            } else if (contentChangeEvent.CmisObject is IFolder) {
                this.HandleAsIFolder(contentChangeEvent);
            } else if (contentChangeEvent.CmisObject is IDocument) {
                this.HandleAsIDocument(contentChangeEvent);
            }

            return true;
        }

Usage Example

 public void IgnoreNotAccumulatedNonDeleteEvent() {
     var storage = new Mock<IMetaDataStorage>();
     var queue = new Mock<ISyncEventQueue>();
     var e = new ContentChangeEvent(DotCMIS.Enums.ChangeType.Created, Id);
     var transformer = new ContentChangeEventTransformer(queue.Object, storage.Object);
     Assert.Throws<InvalidOperationException>(() => transformer.Handle(e));
 }
All Usage Examples Of CmisSync.Lib.Producer.ContentChange.ContentChangeEventTransformer::Handle