예제 #1
0
 public FinderEventArgs(Finder.FindResultItem resultItem, Stats stats, Status status, bool isSilent = false)
 {
     ResultItem = resultItem;
     Stats      = stats;
     Status     = status;
     IsSilent   = isSilent;
 }
예제 #2
0
        public void PrintFinderResultRow(Finder.FindResultItem item, Stats stats)
        {
            PrintFileAndEncoding(item);

            if (item.IsSuccess)
            {
                PrintNameValuePair("Matches", item.NumMatches.ToString());
            }
            else
            {
                PrintNameValuePair("Error", item.ErrorMessage);
            }

            Console.WriteLine();
        }
예제 #3
0
        private void ShowFindResult(Finder.FindResultItem findResultItem, Stats stats, Status status)
        {
            if (stats.Files.Total != 0)
            {
                if (findResultItem.IncludeInResultsList)
                {
                    gvResults.Rows.Add();

                    int currentRow = gvResults.Rows.Count - 1;

                    gvResults.Rows[currentRow].ContextMenuStrip = CreateContextMenu(currentRow);

                    int columnIndex = 0;
                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = findResultItem.FileName;
                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = findResultItem.FileRelativePath;

                    if (_lastOperationFormData.ShowEncoding)
                    {
                        gvResults.Rows[currentRow].Cells[columnIndex++].Value = findResultItem.FileEncoding != null
                                                                                                                ? findResultItem.FileEncoding.WebName
                                                                                                                : String.Empty;
                    }

                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = findResultItem.NumMatches;
                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = findResultItem.ErrorMessage;

                    gvResults.Rows[currentRow].Resizable = DataGridViewTriState.False;

                    if (findResultItem.IsSuccess && findResultItem.NumMatches > 0)                     //Account for errors and IncludeFilesWithoutMatches
                    {
                        string fileContent = string.Empty;

                        using (var sr = new StreamReader(findResultItem.FilePath, findResultItem.FileEncoding))
                        {
                            fileContent = sr.ReadToEnd();
                        }


                        List <MatchPreviewLineNumber> lineNumbers = Utils.GetLineNumbersForMatchesPreview(fileContent,
                                                                                                          findResultItem.Matches);
                        gvResults.Rows[currentRow].Cells[columnIndex].Value = GenerateMatchesPreviewText(fileContent,
                                                                                                         lineNumbers.Select(
                                                                                                             ln => ln.LineNumber).ToList());
                    }

                    //Grid likes to select the first row for some reason
                    if (gvResults.Rows.Count == 1)
                    {
                        gvResults.ClearSelection();
                    }
                }

                progressBar.Maximum = stats.Files.Total;
                progressBar.Value   = stats.Files.Processed;

                lblStatus.Text = "Processing " + stats.Files.Processed + " of " + stats.Files.Total + " files.  Last file: " +
                                 findResultItem.FileRelativePath;

                ShowStats(stats);
            }
            else
            {
                HideResultPanel();

                txtNoMatches.Visible = true;

                HideStats();
            }



            //When last file - enable buttons back
            if (status == Status.Completed || status == Status.Cancelled)
            {
                if (status == Status.Completed)
                {
                    lblStatus.Text = "Processed " + stats.Files.Processed + " files.";
                }

                if (status == Status.Cancelled)
                {
                    lblStatus.Text = "Operation was cancelled.";
                }

                EnableButtons();
            }
        }