Ejemplo n.º 1
0
        private HashNode AddLocalAddressBook(IResource mapiFolder)
        {
            if (Folder.IsDeletedItems(mapiFolder))
            {
                Folder.SetIgnoreImportAsync(mapiFolder, _folderType, true);
                return(null);
            }
            IResource parentFolder = Folder.GetParent(mapiFolder);

            if (parentFolder == null)
            {
                ResourceProxy proxy = new ResourceProxy(mapiFolder);
                proxy.DeleteAsync();
                return(null);
            }
            if (Folder.IsRoot(parentFolder))
            {
                return(_rootNode.InsertResource(mapiFolder));
            }
            else
            {
                HashNode hasNode =
                    AddLocalAddressBook(parentFolder);
                if (hasNode == null)
                {
                    Folder.SetIgnoreImportAsync(mapiFolder, _folderType, true);
                    return(null);
                }
                return(hasNode.InsertResource(mapiFolder));
            }
        }
Ejemplo n.º 2
0
        private void OnSearchDownloadClick()
        {
            //  Check validity of result query urls.
            //  If some url is invalid, abort further processing.
            //  ToDo: just ignore invalid urls?
            string query = _searchEnginesPane.SearchQuery;

            string[] feedNames  = _searchEnginesPane.CheckedFeedNames;
            string[] searchUrls = _searchEnginesPane.CheckedURLs;
            foreach (string url in searchUrls)
            {
                try
                {
                    new Uri(url + query);
                }
                catch (Exception ex)
                {
                    _searchEnginesPane.ErrorMessage = ex.Message;
                    return;
                }
            }

            _progressLabel.Text = "Downloading...";
            _nextButton.Enabled = false;
            _searchEnginesPane.ControlsEnabled = false;

            if (_newFeedProxy != null)
            {
                _newFeedProxy.DeleteAsync();
                _newFeedProxy = null;
            }

            _rssMultipleUnitOfWork = new MultipleFeedsJob(searchUrls, feedNames, query, _searchEnginesPane.SearchPhrase);
            _rssMultipleUnitOfWork.DownloadTitleProgress += OnDownloadTitleProgress;
            _rssMultipleUnitOfWork.DownloadProgress      += OnDownloadProgress;
            _rssMultipleUnitOfWork.ParseDone             += OnMultipleParseDone;
            Core.NetworkAP.QueueJob(JobPriority.Immediate, _rssMultipleUnitOfWork);
        }