using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Navigation;
|
using System.Windows.Shapes;
|
using XHandler.Class;
|
using XImagingXhandler.XDAL;
|
using System.IO;
|
using XCommon;
|
using XCommon.Log;
|
using XCoreBLL;
|
using XHandler.View.Page;
|
using DataEntity;
|
using DataEntity.Device;
|
using DataEntity.Page;
|
using DataRWDAL;
|
using HxEnum;
|
using NPOI.SS.Formula.Functions;
|
|
namespace XHandler.View.DataLog
|
{
|
/// <summary>
|
/// DataLogList.xaml 的交互逻辑
|
/// </summary>
|
public partial class DataLogList : UserControl
|
{
|
ObservableCollection<LogInformation> logInformationList = new ObservableCollection<LogInformation>();
|
LogInformation logInfo = new LogInformation();
|
public MainWindow mainWindow = null;
|
|
#region 变量
|
// 分页数据
|
private Pagination m_pagination = new Pagination();
|
#endregion
|
|
public DataLogList()
|
{
|
InitializeComponent();
|
}
|
|
private void btnSearch_Click(object sender, RoutedEventArgs e)
|
{
|
dgResult.ItemsSource = null;
|
pagerToolsControl_paging.Current = PaginationDefaultParameter.Current;
|
|
}
|
|
private void btnView_Click(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
if (EventResponseController.Instance.CanExecute() == false)
|
return;
|
Button btn = (Button)sender;
|
if (btn != null)
|
{
|
string id = (string)btn.Tag;
|
|
var recordLog = logInformationList.SingleOrDefault(x => x.log_filepath == btn.Tag.ToString());
|
string strPath = recordLog.log_filepath;
|
if (File.Exists(strPath))
|
{
|
System.Diagnostics.Process.Start("notepad.exe", strPath);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
}
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
{
|
try
|
{
|
BindingDatalogCollection();
|
}
|
catch(Exception ex)
|
{
|
|
}
|
}
|
|
private void DataGridCell_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
{
|
|
}
|
|
private void pagerToolsControl_paging_PageCntChanged(object sender, Page.C_EventArgsClass e)
|
{
|
m_pagination.Current = e.CurrentPageNo;
|
DataBinding(m_pagination);
|
}
|
|
private void pagerToolsControl_paging_OnePageRowCntChanged(object sender, Page.C_EventArgsClass e)
|
{
|
m_pagination.Current = e.CurrentPageNo;
|
m_pagination.PageSize = e.PagerNum;
|
DataBinding(m_pagination);
|
}
|
|
/// <summary>
|
/// 分页绑定
|
/// </summary>
|
/// <param name="pagination"></param>
|
private void DataBinding(Pagination pagination)
|
{
|
string strFileName = this.tbxDataLogName.Text;
|
logInformationList = GenerateDataLogCollection(strFileName);
|
var resultLogInformationList = GetPagedData(logInformationList, pagination.Current, pagination.PageSize);
|
var result = new Tuple<IEnumerable<LogInformation>, int>(resultLogInformationList, logInformationList.Count());
|
if (result != null)
|
{
|
pagerToolsControl_paging.IsTrigger = false;
|
pagerToolsControl_paging.DataCount = result.Item2; // 当前查到数量
|
pagerToolsControl_paging.Current = pagination.Current;
|
pagerToolsControl_paging.IsTrigger = true;
|
dgResult.ItemsSource = result.Item1;
|
}
|
}
|
|
#region 读取运行日志记录文件到集合
|
private ObservableCollection<LogInformation> GenerateDataLogCollection(string fileName)
|
{
|
ObservableCollection<LogInformation> logInformationArray = new ObservableCollection<LogInformation>();
|
string basePath = System.AppDomain.CurrentDomain.BaseDirectory;
|
string runLogFolderPath = basePath + @"Logs\Handler";//运行操作目录
|
string connectServeFolderPath = basePath + @"LogFiles";//运行服务目录
|
string controlRunFolderPath = basePath + @"Logs\DriveRun";//控制运行目录
|
|
try
|
{
|
int i = 0;
|
if (Directory.Exists(runLogFolderPath))
|
{
|
string[] runLogFileInfo = Directory.GetFiles(runLogFolderPath);
|
foreach (string file in runLogFileInfo)
|
{
|
LogInformation logInformation = new LogInformation();
|
logInformation.log_id = (1).ToString();
|
logInformation.log_name = file.Substring(file.LastIndexOf('\\') + 1, file.Length - file.LastIndexOf('\\') - 1);
|
logInformation.log_filepath = file;
|
logInformation.log_content = string.Empty;
|
logInformation.log_type = "运行日志";
|
FileInfo fileInfo = new FileInfo(file);
|
logInformation.time_stamp = fileInfo.LastWriteTime;
|
logInformationArray.Add(logInformation);
|
}
|
}
|
|
if (Directory.Exists(controlRunFolderPath))
|
{
|
string[] controlRunFileInfo = Directory.GetFiles(controlRunFolderPath);
|
foreach (string file in controlRunFileInfo)
|
{
|
LogInformation logInformation = new LogInformation();
|
logInformation.log_id = (1).ToString();
|
logInformation.log_name = file.Substring(file.LastIndexOf('\\') + 1, file.Length - file.LastIndexOf('\\') - 1);
|
logInformation.log_filepath = file;
|
logInformation.log_content = string.Empty;
|
logInformation.log_type = "动作日志";
|
FileInfo fileInfo = new FileInfo(file);
|
logInformation.time_stamp = fileInfo.LastWriteTime;
|
logInformationArray.Add(logInformation);
|
}
|
}
|
|
if (Directory.Exists(connectServeFolderPath))
|
{
|
string[] connectServeFileInfo = Directory.GetFiles(connectServeFolderPath);
|
foreach (string file in connectServeFileInfo)
|
{
|
LogInformation logInformation = new LogInformation();
|
logInformation.log_id = (1).ToString();
|
logInformation.log_name = file.Substring(file.LastIndexOf('\\') + 1, file.Length - file.LastIndexOf('\\') - 1);
|
logInformation.log_filepath = file;
|
logInformation.log_content = string.Empty;
|
logInformation.log_type = "通信日志";
|
FileInfo fileInfo = new FileInfo(file);
|
logInformation.time_stamp = fileInfo.LastWriteTime;
|
logInformationArray.Add(logInformation);
|
}
|
}
|
|
if (logInformationArray.Count > 0)
|
{
|
logInformationArray = new ObservableCollection<LogInformation>(logInformationArray.OrderByDescending(x => x.time_stamp));
|
|
logInformationArray = new ObservableCollection<LogInformation>(logInformationArray.Where(x => x.log_name.Contains(fileName)).ToList());
|
|
foreach (LogInformation log in logInformationArray)
|
{
|
log.log_id = (++i).ToString();
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
|
}
|
return logInformationArray;
|
}
|
#endregion
|
|
#region 绑定数据日志集合到界面
|
private void BindingDatalogCollection()
|
{
|
DataBinding(m_pagination);
|
}
|
#endregion
|
|
#region 集合数据分页方法
|
private static IEnumerable<T> GetPagedData<T>(IEnumerable<T> source, int currentPageNumber, int pageSize)
|
{
|
if (source == null || !source.Any()) return Enumerable.Empty<T>();
|
|
int startIndex = (currentPageNumber - 1) * pageSize;
|
int endIndex = Math.Min(startIndex + pageSize, source.Count());
|
|
return source.Skip(startIndex).Take(endIndex - startIndex);
|
}
|
#endregion
|
|
private void btnReset_Click(object sender, RoutedEventArgs e)
|
{
|
tbxDataLogName.Text = "";
|
btnSearch_Click(sender, e);
|
}
|
}
|
}
|