using System;
using System.Collections.Generic;
using System.Linq;
using System.Transactions;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using DotNetOpenAuth.AspNet;
using Microsoft.Web.WebPages.OAuth;
using WebMatrix.WebData;
using EMIS.CommonLogic.Log;
using EMIS.ViewModel;
using EMIS.Web.Controls;
using Bowin.Common.Data;
using Bowin.Web.Controls.Mvc;
using Bowin.Common.Utility;
namespace EMIS.Web.Controllers
{
[Authorization]
public class OperateLogController : Controller
{
public IOperateLogServices OperateLogServices { get; set; }
///
/// 操作日志页面
///
///
public ActionResult List()
{
return View();
}
///
/// 操作日志列表查询
///
///
///
[HttpPost]
public ActionResult List(QueryParamsModel pararms)
{
try
{
ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms);
var startTime = pararms.getExtraDateTime("StartTime");
var endTime = pararms.getExtraDateTime("EndTime");
return base.Json(OperateLogServices.GetOperateLogViewList(configuretView, startTime.Value, endTime.Value, (int)pararms.page, (int)pararms.rows));
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 删除
///
///
///
[HttpPost]
public ActionResult Delete(string operateLogIDs)
{
try
{
var operateLogIDList = operateLogIDs.Split(',').Select(x => (Guid?)new Guid(x)).ToList();
OperateLogServices.Delete(operateLogIDList);
return base.Json("删除成功。");
}
catch (Exception ex)
{
return base.Json("删除失败,原因:" + ex.Message + "。");
}
}
///
/// Excel导出
///
///
[HttpPost]
public ActionResult Excel()
{
NpoiExcelHelper neh = new NpoiExcelHelper();
ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null);
var startTime = Request.Form["StartTime"].ParseStrTo();
var endTime = Request.Form["EndTime"].ParseStrTo();
if (configuretView.Attribute == DropdownList.SELECT_ALL.ToString()) configuretView.Attribute = "";
var dt = OperateLogServices.GetOperateLogViewList(configuretView, startTime.Value, endTime.Value).Select(x => new
{
x.LoginID,
x.UserName,
x.IP,
x.TableName,
x.SourceUrl,
x.Operate,
x.Detail,
x.IsSuccessDesc,
x.OperateTime
}).ToTable();
string[] liststring = {
"用户名", "姓名", "IP地址", "操作表名", "页面地址",
"操作类型", "操作详情", "是否成功", "操作时间"
};
neh.Export(dt, liststring, "操作日志信息" + DateTime.Now.ToString("yyyyMMdd"));
return RedirectToAction("MsgShow", "Common", new
{
msg = "导出成功。",
url = Url.Content("~/OperateLog/List").AddMenuParameter()
});
}
}
}