示例#1
0
 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");
        }