92 lines
3.3 KiB
C#
92 lines
3.3 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AdvertsingProfitControl
|
|
{
|
|
public partial class FrmLogFileViewer : Form
|
|
{
|
|
private string _clickedNode;
|
|
//Create the right-click context menu.
|
|
private readonly ContextMenu _menu = new ContextMenu();
|
|
private readonly MenuItem _item = new MenuItem("Delete File");
|
|
public FrmLogFileViewer()
|
|
{
|
|
InitializeComponent();
|
|
RefreshLogFileListing();
|
|
fileListTreeView.NodeMouseClick += NodeSelectionChangedOnMouseClick;
|
|
_menu.MenuItems.Add(_item);
|
|
_item.Click += DeleteFile;
|
|
}
|
|
|
|
private void DeleteFile(object sender, EventArgs e)
|
|
{
|
|
if (_clickedNode == string.Empty) return;
|
|
if (!File.Exists(_clickedNode)) return;
|
|
if (_clickedNode != null) File.Delete(_clickedNode);
|
|
RefreshLogFileListing();
|
|
}
|
|
|
|
private void NodeSelectionChangedOnMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
|
{
|
|
if (e.Button == MouseButtons.Left)
|
|
{
|
|
//Refresh the text boxes.
|
|
ReadSelectedFile(e.Node.Index);
|
|
}
|
|
else if(e.Button == MouseButtons.Right)
|
|
{
|
|
_clickedNode = e.Node.Name;
|
|
_menu.Show(fileListTreeView, e.Location);
|
|
fileListTreeView.SelectedNode = e.Node;
|
|
ReadSelectedFile(e.Node.Index);
|
|
}
|
|
}
|
|
|
|
private void RefreshLogFileListing()
|
|
{
|
|
var fileNames = Directory.GetFiles(GlobalClasses.LogFilePath);
|
|
fileListTreeView.Nodes.Clear();
|
|
foreach (var fileName in fileNames)
|
|
{
|
|
var file = new FileInfo(fileName);
|
|
var node = new TreeNode(file.Name) { Name = file.FullName };
|
|
fileListTreeView.Nodes.Add(node);
|
|
}
|
|
|
|
if (fileListTreeView.Nodes.Count <= 0) return;
|
|
ReadSelectedFile();
|
|
}
|
|
|
|
private void ReadSelectedFile(int selectedIndex = -1)
|
|
{
|
|
var lines = File.ReadAllLines(selectedIndex == -1 ? fileListTreeView.Nodes[0].Name : fileListTreeView.Nodes[selectedIndex].Name);
|
|
selectedFileNameLabel.Text = selectedIndex == -1
|
|
? fileListTreeView.Nodes[0].Text
|
|
: fileListTreeView.Nodes[selectedIndex].Text;
|
|
friendlyViewTextBox.Text = string.Empty;
|
|
rawViewTextBox.Text = string.Empty;
|
|
var lastCharWasWhiteSpace = false;
|
|
foreach (var line in lines)
|
|
{
|
|
if (line == string.Empty)
|
|
{
|
|
rawViewTextBox.Text += Environment.NewLine;
|
|
if (!lastCharWasWhiteSpace)
|
|
{
|
|
friendlyViewTextBox.Text += Environment.NewLine;
|
|
}
|
|
lastCharWasWhiteSpace = true;
|
|
continue;
|
|
}
|
|
if (!line.Trim().StartsWith("at"))
|
|
{
|
|
friendlyViewTextBox.Text += line + Environment.NewLine;
|
|
}
|
|
rawViewTextBox.Text += line + Environment.NewLine;
|
|
lastCharWasWhiteSpace = false;
|
|
}
|
|
}
|
|
}
|
|
}
|