Exemplo n.º 1
0
        public DropBoxLink(DropBoxLinkParams dropBoxLinkParams, IEventAggregator aggregator)
        {
            this.aggregator = aggregator;
            var client          = new DropboxClientFactory(dropBoxLinkParams.AccessToken).GetInstance();
            var localFolderRoot = new LocalFolderRoot(dropBoxLinkParams.LocalFolderPath);

            this.cloudStorage        = new DropBoxCloudStorage(client, dropBoxLinkParams.Card, dropBoxLinkParams.PrivateKeyPassword);
            this.localFolder         = new LocalFolder(localFolderRoot, "Source");
            this.localFolderWatcher  = new LocalFolderWatcher(this.localFolder);
            this.serverFolder        = new ServerFolder();
            this.serverFolderWatcher = new DropboxFolderWatcher(client, this.serverFolder);
            this.operationsFactory   = new OperationsFactory(this.cloudStorage, this.localFolder);

            this.serverFolder.Subscribe(this);
            this.localFolder.Subscribe(this);
        }
        public void Test2()
        {
            var events = new List <LocalFolderWatcher.TimestampedEvent>()
            {
                Item(WatcherChangeTypes.Changed, "dir", "file1"),
                Item(WatcherChangeTypes.Changed, "dir", "file1"),
                Item(WatcherChangeTypes.Changed, "dir", "file1"),
                Item(WatcherChangeTypes.Changed, "dir", "file1"),
                Item(WatcherChangeTypes.Changed, "dir", "file1"),
                Item(WatcherChangeTypes.Deleted, "dir", "file1")
            };
            var cleaned = LocalFolderWatcher.AggregateEvents(events);

            cleaned.Should().HaveCount(1);
            cleaned[0].ChangeType.Should().Be(WatcherChangeTypes.Deleted);
        }