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); }