#region
using System;
using System.Data;
using System.Drawing;
using System.Text;
using CSFrameworkV5.Business;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using CSFrameworkV5.Library;
using CSFrameworkV5.Library.CommonClass;
using CSFrameworkV5.Library.CommonForms;
using DevExpress.XtraEditors.Controls;
#endregion
namespace CSFrameworkV5.SystemModule
{
public partial class frmLogOperateViewer : frmBaseChild
{
private bllLog _BLL;
public frmLogOperateViewer()
{
InitializeComponent();
}
private void btnAdvSearch_Click(object sender, EventArgs e)
{
var result = frmAdvancedSearch.Execute(gvSummary, _BLL);
}
private void btnClearLoginLog_Click(object sender, EventArgs e)
{
ClearContainerEditorText(panelControl1);
txt_LoginUser.EditValue = Loginer.CurrentUser.Account;
}
private void btnEmpty_Click(object sender, EventArgs e)
{
ClearContainerEditorText(pnlSearch);
txt_User.EditValue = Loginer.CurrentUser.Account;
}
private void btnQuery_Click(object sender, EventArgs e)
{
try
{
frmWaitingEx.ShowMe(this);
var data = _BLL.QueryOperateLog(txt_Content.Text,
txt_Date1.DateTime, txt_Date2.DateTime,
txt_OperateType.Text,
ConvertEx.ToString(txt_User.EditValue));
gcSummary.DataSource = data;
}
finally
{
frmWaitingEx.HideMe(this);
}
if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!");
}
private void btnQueryLoginLog_Click(object sender, EventArgs e)
{
try
{
frmWaitingEx.ShowMe(this);
var loginType = txt_LoginType.Text != ""
? txt_LoginType.Text.Substring(0, 1)
: "";
var data = _BLL.QueryLoginLog(loginType, txt_LoginUser.Text,
txt_LoginIP.Text, txt_LoginMAC.Text,
txt_LoginD1.DateTime, txt_LoginD2.DateTime);
gcLoginLog.DataSource = data;
}
finally
{
frmWaitingEx.HideMe(this);
}
if (gvLoginLog.RowCount == 0) Msg.Warning("没有找到数据!");
}
///
/// 删除记录
///
///
public virtual void DoDelete(IButtonInfo sender)
{
if (xtraTabControl1.SelectedTabPage == xtraTabPage1)
{
Assertion.AssertZero(gvSummary.RowCount, "当前表格中没有数据!");
if (Msg.AskQuestion("确定要删除表格中所有[系统操作日志]吗?"))
{
var isids = GetISIDs(gcSummary.DataSource as DataTable);
var i = _BLL.DeleteOperateLog(isids);
Msg.ShowInformation("本次操作共删除 " + i.ToStringEx() + " 条数据!");
//刷新表格数据
btnQuery_Click(btnQuery, new EventArgs());
}
}
if (xtraTabControl1.SelectedTabPage == xtraTabPage2)
{
Assertion.AssertZero(gvLoginLog.RowCount, "当前表格中没有数据!");
if (Msg.AskQuestion("确定要删除表格中所有[系统登录日志]吗?"))
{
var isids = GetISIDs(gcLoginLog.DataSource as DataTable);
var i = _BLL.DeleteLoginLog(isids);
Msg.ShowInformation("本次操作共删除 " + i.ToStringEx() + " 条数据!");
}
}
}
private void frmLogOperateViewer_Load(object sender, EventArgs e)
{
_BLL = new bllLog();
InitButtons();
frmGridCustomize.RegisterGrid(gvSummary);
DevStyle.SetGridControlLayout(gcSummary, false); //表格设置
DevStyle.SetSummaryGridViewLayout(gvSummary);
DataBinderTools.BoundUser(txt_User, true);
DataBinderTools.BoundUser(txt_LoginUser, true);
DataBinderTools.BoundUser(rep_User);
DataBinderTools.BoundUser(rep_LoginUser);
DataBinderTools.BoundEnum(txt_OperateType, typeof(LogTypeSystem),
true);
LoadImageComboBox();
LoadImageLoginLog();
txt_Date1.DateTime = DateTime.Today.AddDays(-7);
txt_LoginD1.DateTime = DateTime.Today.AddDays(-7);
}
private string GetISIDs(DataTable dt)
{
const int MAX_LEN = 7900;
var sb = new StringBuilder(",");
var sbAll = new StringBuilder(",");
var count = 0;
foreach (DataRow R in dt.Rows)
{
sbAll.Append(R["isid"].ToStringEx() + ",");
if ((sb.ToStringEx() + R["isid"].ToStringEx() + ",").Length <
MAX_LEN)
{
sb.Append(R["isid"].ToStringEx() + ",");
count++;
}
}
if (sbAll.Length > MAX_LEN) Msg.Warning($"将处理{count}条记录!");
return sb.ToStringEx();
}
public override void InitButtons()
{
base.InitButtons();
_buttons.AddButton(ToolbarRegister.CreateButton("btnDelete", "删除日志",
ToolBarGroup.数据操作, Globals.LoadBitmap("32_DeleteLog.png"),
new Size(57, 28), false, true, DoDelete));
}
private void LoadImageComboBox()
{
rep_OperationType.Items.Clear();
var items = Enum.GetNames(typeof(LogTypeSystem));
foreach (var item in items)
rep_OperationType.Items.Add(
new ImageComboBoxItem(item, Array.IndexOf(items, item)));
}
private void LoadImageLoginLog()
{
rep_LoginType.Items.Clear();
rep_LoginType.Items.Add(new ImageComboBoxItem("登入系统", 0));
rep_LoginType.Items.Add(new ImageComboBoxItem("登出系统", 1));
}
}
}