Example #1
0
        public void Shutdown()
        {
            try
            {
                if (_stopCommand.CanExecute(null))
                {
                    _stopCommand.Execute(null);
                }

                Task.WaitAll(_runningTasks.ToArray());
            }
            catch (AggregateException)
            {
            }

            using (_shellService.SetApplicationBusy())
            {
                foreach (IBlog blog in _managerService.BlogFiles)
                {
                    if (blog.Dirty)
                    {
                        blog.Save();
                    }
                }

                _managerService.CacheLibraries();
            }
        }
Example #2
0
        public async Task InitializeAsync()
        {
            _crawlerService.ImportBlogsCommand              = _importBlogsCommand;
            _crawlerService.AddBlogCommand                  = _addBlogCommand;
            _crawlerService.RemoveBlogCommand               = _removeBlogCommand;
            _crawlerService.ShowFilesCommand                = _showFilesCommand;
            _crawlerService.EnqueueSelectedCommand          = _enqueueSelectedCommand;
            _crawlerService.LoadLibraryCommand              = _loadLibraryCommand;
            _crawlerService.LoadAllDatabasesCommand         = _loadAllDatabasesCommand;
            _crawlerService.LoadArchiveCommand              = _loadArchiveCommand;
            _crawlerService.CheckIfDatabasesCompleteCommand = _checkIfDatabasesCompleteCommand;
            _crawlerService.AutoDownloadCommand             = _autoDownloadCommand;
            _crawlerService.ListenClipboardCommand          = _listenClipboardCommand;
            _crawlerService.PropertyChanged                += CrawlerServicePropertyChanged;

            ManagerViewModel.ShowFilesCommand         = _showFilesCommand;
            ManagerViewModel.VisitBlogCommand         = _visitBlogCommand;
            ManagerViewModel.VisitBlogOnTumbexCommand = _visitBlogOnTumbexCommand;
            ManagerViewModel.ShowDetailsCommand       = _showDetailsCommand;
            ManagerViewModel.CopyUrlCommand           = _copyUrlCommand;
            ManagerViewModel.CheckStatusCommand       = _checkStatusCommand;

            ManagerViewModel.PropertyChanged += ManagerViewModelPropertyChanged;

            ManagerViewModel.QueueItems                    = QueueManager.Items;
            QueueManager.Items.CollectionChanged          += QueueItemsCollectionChanged;
            ManagerViewModel.QueueItems.CollectionChanged += ManagerViewModel.QueueItemsCollectionChanged;
            BlogManagerFinishedLoadingLibrary             += OnBlogManagerFinishedLoadingLibrary;
            BlogManagerFinishedLoadingDatabases           += OnBlogManagerFinishedLoadingDatabases;
            BlogManagerFinishedLoadingArchive             += OnBlogManagerFinishedLoadingArchive;

            _shellService.ContentView = ManagerViewModel.View;

            // Refresh command availability on selection change.
            ManagerViewModel.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName != nameof(ManagerViewModel.SelectedBlogFile))
                {
                    return;
                }

                _showFilesCommand.RaiseCanExecuteChanged();
                _visitBlogCommand.RaiseCanExecuteChanged();
                _visitBlogOnTumbexCommand.RaiseCanExecuteChanged();
                _showDetailsCommand.RaiseCanExecuteChanged();
                _copyUrlCommand.RaiseCanExecuteChanged();
                _checkStatusCommand.RaiseCanExecuteChanged();
            };

            if (_shellService.Settings.CheckClipboard)
            {
                _shellService.ClipboardMonitor.OnClipboardContentChanged += OnClipboardContentChanged;
            }

            using (_shellService.SetApplicationBusy())
            {
                await LoadDataBasesAsync();
            }
        }
 private void NavigateDirectoryUp()
 {
     try
     {
         using (shellService.SetApplicationBusy())
         {
             var folder = StorageFolder.GetFolderFromPathAsync(ManagerViewModel.FolderBrowser.CurrentPath).GetResult();
             var parent = folder.GetParentAsync().GetResult();
             ManagerViewModel.FolderBrowser.CurrentPath = parent != null ? parent.Path : "";
         }
     }
     catch (Exception)
     {
         // This can happen when we have lost the connection to a network drive.
         ManagerViewModel.FolderBrowser.CurrentPath = "";
     }
 }