Пример #1
0
        private void ImportUrls_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            CrawlingContext context = Model.SelectedFile.Model;

            if (context.Status == CrawlingStatus.Ready)
            {
                List <Uri>       urls         = ImportUrlsWindow.PromptUrls(this);
                HashSet <string> existingUrls = new HashSet <string>(context.Resources.Select(x => x.Url.AbsoluteUri));
                foreach (Uri url in urls)
                {
                    Uri urlWithoutSessionId = url.WithoutSession();
                    if (!existingUrls.Contains(urlWithoutSessionId.AbsoluteUri))
                    {
                        Resource resource = new Resource(urlWithoutSessionId, ResourceBehavior.Ignore);
                        resource.Status = ResourceStatus.ReadyToProcess;
                        context.Resources.Add(resource);
                        existingUrls.Add(urlWithoutSessionId.AbsoluteUri);
                    }
                }
            }
        }
        public static List <Uri> PromptUrls(Window owner)
        {
            ImportUrlsWindow window = new ImportUrlsWindow();

            window.Owner = owner;
            window.ShowDialog();

            List <Uri> urls = new List <Uri>();

            if (window.ApplyChanges)
            {
                foreach (string line in window.txtUrls.Text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    Uri url;
                    if (Uri.TryCreate(line, UriKind.Absolute, out url))
                    {
                        urls.Add(url);
                    }
                }
            }

            return(urls);
        }