using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web;
using System.Web.Mvc;
using DSWeb.SoftMng.BLL;
using DSWeb.SoftMng.Model;
namespace DSWeb.SoftMng.Controllers
{
public class EmailSchemeController: Controller
{
private readonly t_code_cust_mailprojectBLL _bll = new t_code_cust_mailprojectBLL();
private readonly t_code_cust_mailproject_detailBLL _tbll = new t_code_cust_mailproject_detailBLL();
#region View
///
/// 首页
///
///
//[ModuleAuthFilter(Name = "secRegist")]//过滤器
public ActionResult Index()
{
if (Session["CODENAME"] == null)
Response.Redirect("/login.aspx");
return View();
}
#endregion
#region Handler
///
/// 获取列表
///
///
public JsonResult GetList(int startIndex, int limit, string search)
{
StringBuilder where = new StringBuilder();
where.Append("1=1");
if (!(String.IsNullOrEmpty(search) || String.IsNullOrWhiteSpace(search)))
where.Append(string.Format(" And ([方案名称] like '%{0}%' OR [客户名称] like '%{0}%')", search));
var list = _bll.GetModelList(startIndex, limit, where.ToString(), "[方案代码] ASC");
var result = from p in list
select new
{
f = p.方案代码,
k = p.客户名称,
k_Text=p.客户名称,
t = p.方案名称,
d = p.默认方案,
r = p.方案备注
};
var count = _bll.GetRecordCount(where.ToString());//总数
return Json(new { total = count, rows = result });
}
public JsonResult GetDetailList(int id)
{
StringBuilder where = new StringBuilder();
where.Append("[方案代码] = {0}");
var list = _tbll.GetModelList(string.Format(where.ToString(), id));
var result = from p in list
select new
{
p.DE_ID,
f = p.方案代码,
p = p.单据类型,
p_Text=p.单据类型,
s = p.收件人,
x = p.主题模板,
y = p.邮件内容,
z = p.附件名称
};
return Json(result);
}
///
/// 保存主实例
///
///
///
public JsonResult Save(t_code_cust_mailproject model)
{
bool result;
model.方案代码 = Convert.ToInt32(Request["f"] == "" ? "0" : Request["f"]);
if (model.方案代码==0)
{
model.方案名称 = Request["t"];
model.客户名称 = Request["k"];
model.方案备注 = Request["r"];
model.默认方案 = Convert.ToBoolean(Request["d"]);
model.录入人 = Session["SHOWNAME"].ToString();
model.录入日期 = DateTime.Now;
result = _bll.Add(model) > 0;
} //新增
else
{
//类反射
var oldModel = _bll.GetModel(model.方案代码);
Type type = typeof(t_code_cust_mailproject);
PropertyInfo[] piArr = type.GetProperties();
foreach (var pi in piArr)
{
if (Array.IndexOf(Request.Params.AllKeys, pi.Name) < 0)
pi.SetValue(model, pi.GetValue(oldModel, null), null);
}
model.方案名称 = Request["t"];
model.客户名称 = Request["k"];
model.方案备注 = Request["r"];
model.默认方案 = Convert.ToBoolean(Request["d"]);
result = _bll.Update(model) > 0;
} //修改
return Json(new { success = result, message = result ? "操作成功" : "操作失败" });
}
///
/// 保存主实例
///
///
///
public JsonResult SaveDetail(t_code_cust_mailproject_detail model)
{
bool result;
if (model.DE_ID == 0)
{
model.方案代码 = Convert.ToInt32(Request["f"] == "" ? "0" : Request["f"]);
model.单据类型 = Request["p"];
model.收件人 = Request["s"];
model.主题模板 = Request["x"];
model.邮件内容 = Request["y"];
model.附件名称 = Request["z"];
result = _tbll.Add(model) > 0;
} //新增
else
{
//类反射
var oldModel = _tbll.GetModel(model.DE_ID);
Type type = typeof(t_code_cust_mailproject_detail);
PropertyInfo[] piArr = type.GetProperties();
foreach (var pi in piArr)
{
if (Array.IndexOf(Request.Params.AllKeys, pi.Name) < 0)
pi.SetValue(model, pi.GetValue(oldModel, null), null);
}
model.单据类型 = Request["p"];
model.收件人 = Request["s"];
model.主题模板 = Request["x"];
model.邮件内容 = Request["y"];
model.附件名称 = Request["z"];
result = _tbll.Update(model) > 0;
} //修改
return Json(new { success = result, message = result ? "操作成功" : "操作失败" });
}
///
/// 删除
///
///
///
public JsonResult Delete(string ids)
{
bool result = _bll.DeleteListWhere(string.Format("[方案代码] in({0})", ids)) > 0;
return Json(new { success = result, message = result ? "操作成功" : "操作失败" });
}
///
/// 删除
///
///
///
public JsonResult DeleteDetail(string ids)
{
bool result = _tbll.DeleteListWhere(string.Format("[DE_ID] in({0})", ids)) > 0;
return Json(new { success = result, message = result ? "操作成功" : "操作失败" });
}
///
/// 获取单据类型
///
///
///
///
///
public JsonResult GetDocType(int pageIndex, int pageSize, string query)
{
tSysEnumValueBLL ibll = new tSysEnumValueBLL();
StringBuilder where = new StringBuilder();
where.Append("EnumTypeID='8000'");
if (!String.IsNullOrEmpty(query))
where.Append(string.Format("EnumValueName LIKE '%{0}%' OR EnumValueID LIKE '%{0}%' ", query));
var list = ibll.GetModelList(pageIndex, pageSize, where.ToString(), "EnumValueName collate Chinese_PRC_CS_AS_KS_WS");
var total = ibll.GetRecordCount(where.ToString());
var result = from p in list
select new
{
id = p.EnumValueName,
text = p.EnumValueName
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
#endregion
}
}