internal SearchResultsVertex PerformSearch(string search_string, PocVertex source_vertex, List <string> extensions_to_search) { SearchResultsVertex search_result = new SearchResultsVertex(search_string); search_result.Results = new List <SearchResult>(); search_result.ExtensionsToSearch = extensions_to_search; Graph.AddVertex(search_result); Graph.AddEdge(new PocEdge(source_vertex, search_result)); return(search_result); }
internal void PopulateResults(string search_term, SearchResultsVertex results_vertex, IProgress <int> progress) { results_vertex.SearchRunning = true; BlockingCollection <SearchResult> results = new BlockingCollection <SearchResult>(); results = SearchDirectory(search_term, results_vertex.ExtensionsToSearch, new DirectoryInfo(root_vertex.FilePath), progress); results_vertex.Results = results.ToList <SearchResult>(); results_vertex.SearchRunning = false; }
private Task SearchForString(string selected_text, VertexControl from_vertex_control, List <string> extensions_to_search = null) { if (selected_text != null && selected_text != "") { PocVertex from_vertex = (PocVertex)from_vertex_control.Vertex; SearchResultsVertex new_search_results_vertex = graph_provider.PerformSearch(selected_text, from_vertex, extensions_to_search); VertexControl new_search_results_vertex_control = new VertexControl(new_search_results_vertex) { DataContext = new_search_results_vertex }; graph_area.AddVertex(new_search_results_vertex, new_search_results_vertex_control); PocEdge new_edge = new PocEdge((PocVertex)from_vertex_control.Vertex, new_search_results_vertex); graph_area.InsertEdge(new_edge, new EdgeControl(from_vertex_control, new_search_results_vertex_control, new_edge)); graph_area.RelayoutGraph(true); graph_area.UpdateLayout(); centre_on_me = new_search_results_vertex_control; System.Windows.Controls.DataGrid grid = TreeHelpers.FindVisualChild <System.Windows.Controls.DataGrid>(new_search_results_vertex_control); System.Windows.Controls.ProgressBar bar = TreeHelpers.FindVisualChild <System.Windows.Controls.ProgressBar>(new_search_results_vertex_control); if (still_counting) { bar.Maximum = 100; } else { bar.Maximum = directory_count; } var search_progress = new Progress <int>((int some_int) => ReportProgress(bar)); return(graph_provider.PopulateResultsAsync(selected_text, new_search_results_vertex, search_progress)); //bar.Visibility = System.Windows.Visibility.Collapsed; //grid.Visibility = System.Windows.Visibility.Visible; } return(new Task(() => { })); }
internal Task PopulateResultsAsync(string search_string, SearchResultsVertex search_result, IProgress <int> progress) { search_result.SearchRunning = true; return(Task.Factory.StartNew(() => PopulateResults(search_string, search_result, progress))); }