using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using EMIS.ViewModel.ExaminationApply;
using EMIS.CommonLogic.ExaminationApply;
using EMIS.ViewModel;
using EMIS.Web.Controls;
using Bowin.Common.Data;
using Bowin.Common.Utility;
using Bowin.Common.Exceptions;
using Bowin.Web.Controls.Mvc;
namespace EMIS.Web.Controllers.ExaminationApply
{
[Authorization]
public class ExaminationSubjectController : Controller
{
public IExaminationSubjectServices ExaminationSubjectServices { get; set; }
///
/// 考试科目页面
///
///
public ActionResult List()
{
return View();
}
public ActionResult Edit(Guid? ExaminationSubjectID)
{
ExaminationSubjectView examinationSubjectView = new ExaminationSubjectView();
if (ExaminationSubjectID != null && ExaminationSubjectID != Guid.Empty)
{
examinationSubjectView = ExaminationSubjectServices.GetExaminationSubjectViewInfo(ExaminationSubjectID);
}
ViewBag.ID = ExaminationSubjectID;
return View(examinationSubjectView);
}
///
/// 列表查询
///
///
///
[HttpPost]
public ActionResult List(QueryParamsModel pararms)
{
ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms);
var examinationTypeID = pararms.getExtraGuid("ExaminationTypeDropdown");
var schoolYearID = pararms.getExtraGuid("SchoolYearDropdown");
var examinationSubjectID = pararms.getExtraGuid("ExaminationSubjectDropdown");
if (configuretView.Attribute == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL.ToString()) configuretView.Attribute = "";
return base.Json(ExaminationSubjectServices.GetExaminationSubjectViewList(configuretView, examinationTypeID,examinationSubjectID,schoolYearID, (int)pararms.page, (int)pararms.rows));
}
[HttpPost]
public ActionResult Excel()
{
NpoiExcelHelper neh = new NpoiExcelHelper();
ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(null);
var examinationTypeID = Request.Form["ExaminationTypeDropdown"].ParseStrTo();
if (configuretView.Attribute == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL.ToString()) configuretView.Attribute = "";
var dt = ExaminationSubjectServices.GetExaminationSubjectViewList(configuretView, examinationTypeID, null).Select(x => new
{
x.Name,
ExaminationDate = (x.ExaminationDate.HasValue ? x.ExaminationDate.Value.ToString("yyyy-MM-dd") : ""),
x.ExaminationTypeName,
x.ExaminationFormName,
x.PeopleNumLimit,
x.SchoolyearCode
}).ToTable();
string[] liststring = { "考试科目", "考试日期", "考试类型", "考试类别", "最大报名人数", "考试学年学期" };
neh.Export(dt, liststring, "考试科目信息");
return RedirectToAction("MsgShow", "Common", new
{
msg = "导出成功!",
url = Url.Content("~/ExaminationSubject/List").AddMenuParameter()
});
}
///
/// 删除
///
///
///
[HttpPost]
public ActionResult Delete(string examinationSubjectIDs)
{
try
{
var examinationSubjectIDList = examinationSubjectIDs.Split(',').Select(x => (Guid?)new Guid(x)).ToList();
ExaminationSubjectServices.Delete(examinationSubjectIDList);
return base.Json("删除成功");
}
catch (Exception ex)
{
string mge = ex.Message;
System.Data.SqlClient.SqlException num = ExceptionHelper.GetSqlException(ex);
if (num != null)
{
if (num.Number == 547)
mge = "请先删除所有关联的数据,如:要求通过科目为该考试科目的数据、或者考场安排等";
}
return base.Json("删除失败,原因:" + mge + "!");
}
}
///
/// 修改
///
///
[HttpPost]
public ActionResult Edit(ExaminationSubjectView examinationSubjectView)
{
try
{
var user = HttpContext.User as EMIS.Utility.FormValidate.CustomPrincipal;
ExaminationSubjectServices.Save(examinationSubjectView);
return Json(new ReturnMessage()
{
IsSuccess = true,
Message = "保存成功!"
});
}
catch (Exception ex)
{
return Json(new ReturnMessage()
{
IsSuccess = false,
Message = "保存失败:" + ex.Message
});
}
}
[HttpPost]
public ActionResult DropdownList(DropdownListBindType? bindType, Guid? examinationTypeID,Guid? examinationSubjectID)
{
List list = ExaminationSubjectServices.GetExaminationSubjectViewList(new ConfiguretView(), examinationTypeID, examinationSubjectID)
.Select(x => new DropdownListItem { Text = x.Name, Value = x.ExaminationSubjectID.ToString() }).ToList();
DropdownListBindType dbt = bindType == null ? DropdownListBindType.PleaseSelect : bindType.Value;
Bowin.Web.Controls.Mvc.DropdownList.FormatDropdownItemList(dbt, list);
return base.Json(list);
}
[HttpPost]
public ActionResult DropdownExaminationSubjectNameList(QueryParamsModel pararms)
{
ConfiguretView configuretView = ConfiguretExtensions.GetConfiguretermsView(pararms);
if (configuretView.Attribute == Bowin.Web.Controls.Mvc.DropdownList.SELECT_ALL.ToString()) configuretView.Attribute = "";
var list = ExaminationSubjectServices.GetExaminationSubjectNameViewList(configuretView, (int)pararms.page, (int)pararms.rows);
return base.Json(list);
}
public ActionResult Validation(string ExaminationTypeIDs, string SchoolyearIDs,string ExaminationFormIDs, string names)
{
List list = new List();
foreach (var i in ExaminationTypeIDs.Split(','))
{
list.Add(new Guid(i));
}
List list1 = new List();
foreach (var i in SchoolyearIDs.Split(','))
{
list1.Add(new Guid(i));
}
List list2 = new List();
foreach (var i in ExaminationFormIDs.Split(','))
{
list2.Add(Convert.ToInt32(i));
}
List list3 = new List();
foreach (var i in names.Split(','))
{
list3.Add(i);
}
string[] result = ExaminationSubjectServices.Validation(list, list1, list2, list3);
return Json(new ReturnMessage()
{
IsSuccess = result[0] == "true" ? true : false,
Message = result[1]
});
}
}
}