Пример #1
0
        public void PrintReplacerResultRow(Replacer.ReplaceResultItem item, Stats stats)
        {
            PrintFileAndEncoding(item);

            if (!item.FailedToOpen)
            {
                PrintNameValuePair("Matches", item.NumMatches.ToString());
            }

            PrintNameValuePair("Replaced", item.IsReplaced ? "Yes" : "No");

            if (!item.IsSuccess)
            {
                PrintNameValuePair("Error", item.ErrorMessage);
            }

            Console.WriteLine();
        }
Пример #2
0
        private void ShowReplaceResult(Replacer.ReplaceResultItem replaceResultItem, Stats stats, Status status)
        {
            if (stats.Files.Total > 0)
            {
                if (replaceResultItem.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 = replaceResultItem.FileName;
                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = replaceResultItem.FileRelativePath;

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

                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = replaceResultItem.NumMatches;
                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = replaceResultItem.IsReplaced ? "Yes" : "No";
                    gvResults.Rows[currentRow].Cells[columnIndex++].Value = replaceResultItem.ErrorMessage;

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

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


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

                        List <MatchPreviewLineNumber> lineNumbers = Utils.GetLineNumbersForMatchesPreview(fileContent,
                                                                                                          replaceResultItem.Matches,
                                                                                                          _lastOperationFormData
                                                                                                          .ReplaceText.Length, true);
                        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: " +
                                 replaceResultItem.FileRelativePath;


                ShowStats(stats, true);
            }
            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();
            }
        }