private void DirectoryWatcherNewFileAdded(object sender, FileSystemEventArgs e) { _mainWorker.AddWorkItem(e); _mainWorker.RunHandlingOfWorkingItems( (fileItem) => { Application.Current.Dispatcher.Invoke( () => { Items.Add(fileItem); }); }, () => { _dataSerializer.Store(Items); }, (ex, fileItem) => { Application.Current.Dispatcher.Invoke( () => { fileItem.IsError = true; }); }, false ); }
public void TestAddOneItem() { MainWorker worker = new MainWorker(); //CreateTestData(); bool stored = false; worker.TargetFolder = TargetFolderTest; FileSystemEventArgs args = new FileSystemEventArgs(WatcherChangeTypes.All, SourceFolderTest, SourceFileName); //FileItem item = new FileItem() { Name = SourceFileName }; worker.AddWorkItem(args); worker.RunHandlingOfWorkingItems( (item) => { _items.Add(item); }, () => { //_serializer.Store(_items); stored = true; }, (ex, item) => { item.IsError = true; } ); Assert.AreEqual(true, worker.IsRunning); worker.CancellationPending = true; while (worker.IsRunning) { Thread.Sleep(100); } Assert.AreEqual(1, _items.Count); FileItem fileItem = _items[0]; Assert.AreEqual(false, fileItem.IsError); Assert.AreEqual(true, stored, "It must be call for storing collection"); }