CmisSync.Lib.Accumulator.LocalObjectFetcher.Handle C# (CSharp) Method

Handle() public method

Handle the specified e if FolderEvent of FileEvent.
public Handle ( ISyncEvent e ) : bool
e ISyncEvent /// Any ISyncEvent ///
return bool
        public override bool Handle(ISyncEvent e) {
            if (e is FolderEvent) {
                var folderEvent = e as FolderEvent;
                if(folderEvent.LocalFolder != null) {
                    return false;
                }

                if (!this.matcher.CanCreateLocalPath(folderEvent.RemoteFolder.Path)) {
                    Logger.Debug("Dropping FolderEvent for not accessable path: " + folderEvent.RemoteFolder.Path);
                    return true;
                }

                Logger.Debug("Fetching local object for " + folderEvent);
                string localPath = this.matcher.CreateLocalPath(folderEvent.RemoteFolder.Path);
                folderEvent.LocalFolder = this.fsFactory.CreateDirectoryInfo(localPath);
            }

            if (e is FileEvent) {
                var fileEvent = e as FileEvent;
                if (fileEvent.LocalFile != null) {
                    return false;
                }

                if (!this.matcher.CanCreateLocalPath(fileEvent.RemoteFile.Paths[0])) {
                    Logger.Debug("Dropping FileEvent for not accessable path: " + fileEvent.RemoteFile.Paths[0]);
                    return true;
                }

                Logger.Debug("Fetching local object for " + fileEvent);
                string localPath = this.matcher.CreateLocalPath(fileEvent.RemoteFile.Paths[0]);
                fileEvent.LocalFile = this.fsFactory.CreateFileInfo(localPath);
            }

            return false;
        }
    }

Usage Example

        public void IgnoresOtherEvents() {
            var matcher = new Mock<IPathMatcher>();

            var syncEvent = new Mock<ISyncEvent>();
            var fetcher = new LocalObjectFetcher(matcher.Object);

            Assert.That(fetcher.Handle(syncEvent.Object), Is.False);
        }
All Usage Examples Of CmisSync.Lib.Accumulator.LocalObjectFetcher::Handle