using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
namespace VRS.Management.VSAT
{
public partial class ExamBatch : BaseListPage
{
DataService.BLL.pro_exam_batch bll = new DataService.BLL.pro_exam_batch();
DataService.BLL.pro_result bll_result = new DataService.BLL.pro_result();
DataService.BLL.admin_log log = new DataService.BLL.admin_log();
DataService.BLL.pro_subject_batch_user bll_subject_batch_user = new DataService.BLL.pro_subject_batch_user();
DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user();
DataService.BLL.pro_exam_batch_result bll_batch_result = new DataService.BLL.pro_exam_batch_result();
protected override void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
var user = DataService.BLL.admin_user.load_login();
var user_login = bll_user.GetModel(user.user_id);
if (bll_user.IsAdministrator(user_login))
{
tr_school.Visible = true;
BindSchool(dp_school, "");
}
else //老师、学校管理员
{
tr_school.Visible = false;
BindSchoolGrade(user_login.school_id, dp_schoolgrade, "");
}
//start.SelectedDate = DateTime.Today;
// end.SelectedDate = DateTime.Today.AddMonths(12);
start.SelectedDate = DateTime.Today.AddDays(-365);
end.SelectedDate = DateTime.Today;
DataLoad();
}
}
protected override void DataLoad()
{
StringBuilder query = new StringBuilder(" 1 = 1 ");
var userlogin = DataService.BLL.admin_user.load_login();
var user_login = bll_user.GetModel(userlogin.user_id);
if (bll_user.IsAdministrator(user_login))
{
if (!string.IsNullOrEmpty(dp_school.SelectedValue))
{
query.AppendFormat(" AND school_id = '{0}' ", dp_school.SelectedValue);
}
}
else //老师、学校管理员只能看到自己学校的场次
{
query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id);
}
/*
if (!string.IsNullOrEmpty(dp_schoolgrade.SelectedValue))
{
query.AppendFormat(" AND grade = '{0}' ", dp_schoolgrade.SelectedValue);
}
*/
if (!string.IsNullOrEmpty(ddp_state.SelectedValue))
{
query.AppendFormat(" AND state ={0} ", ddp_state.SelectedValue);
}
if (!string.IsNullOrWhiteSpace(txt_batch_name.Text.Trim()))
{
query.AppendFormat(" AND batch_name LIKE '%{0}%' ", txt_batch_name.Text.Trim());
}
var start_date = start.SelectedDate.HasValue ? start.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
var end_date = end.SelectedDate.HasValue ? end.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
if (!string.IsNullOrEmpty(end_date))
{
end_date = DateTime.Parse(end_date).AddDays(1).ToString("yyyy-MM-dd");
}
//开始时间、结束时间
if (!string.IsNullOrWhiteSpace(start_date))
{
query.AppendFormat(" AND T1.start_time >= '{0}' ", start_date);
}
if (!string.IsNullOrWhiteSpace(end_date))
{
query.AppendFormat(" AND T1.end_time < '{0}' ", end_date);
}
string orderby = " order by T1.batch_id desc ";
var data = bll.QueryResult(query.ToString(), orderby);
dataList.DataSource = data;
dataList.Rebind();
}
protected void dp_school_SelectedIndexChanged(object sender, Telerik.Web.UI.DropDownListEventArgs e)
{
var value = dp_school.SelectedValue;
BindSchoolGrade(value, dp_schoolgrade, "");
DataLoad();
}
protected void cbx_schoolgrade_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
DataLoad();
}
protected void ddp_role_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{
DataLoad();
}
protected override void GridList_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
DataLoad();
}
protected override void GridList_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
DataLoad();
}
protected override void GridList_SortCommand(object sender, GridSortCommandEventArgs e)
{
DataLoad();
}
protected override void GrdList_DeleteCommand(object sender, GridCommandEventArgs e)
{
}
protected override void AjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
}
protected void btnSelect_Click(object sender, EventArgs e)
{
DataLoad();
}
protected void btnDelete_Click(object sender, EventArgs e)
{
var model = bll.GetModel(IdInput.Value);
var now = DateTime.Now;
if (now >= model.start_time && now < model.end_time)
{
RadAjaxManager1.ResponseScripts.Add("alert('该考试批次正在进行中,禁止删除!') ");
return;
}
var list = bll_batch_result.GetModelList(" batch_id='" + model.batch_id + "'");
if (list.Count > 0)
{
RadAjaxManager1.ResponseScripts.Add("if (confirm('该考试批次已经有学员参加科目考试,确定要删除吗?')) { $('#btnDelete_Confirm').click(); } ");
return;
}
DeleteBatch();
}
protected void btnDelete_Confirm_Click(object sender, EventArgs e)
{
DeleteBatch();
}
public void DeleteBatch()
{
var model = bll.GetModel(IdInput.Value);
/*
if (bll.Delete(IdInput.Value))
{
var pro_subject_batch_user_list = bll_subject_batch_user.GetModelList(string.Format("batch_id='{0}' ", IdInput.Value));
foreach (var item in pro_subject_batch_user_list)
{
bll_subject_batch_user.Delete(item.id);
}
log.write_log("删除考试批次成功。" + "批次名称:" + model.batch_name + ",id:" + IdInput.Value);
}
*/
var count = bll.DeleteBatchAndUser(IdInput.Value);
if (count > 0)
{
log.write_log("删除考试批次成功。" + "批次名称:" + model.batch_name + ",id:" + IdInput.Value);
DataLoad();
}
}
protected void btn_Off_Click(object sender, EventArgs e)
{
}
protected void btn_On_Click(object sender, EventArgs e)
{
}
protected void dataList_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "start")
{
var batch_id = (e.Item as GridDataItem).GetDataKeyValue("batch_id").ToString();
var model = bll.GetModel(batch_id);
model.state = 1;
if (bll.Update(model))
{
/*
if (model.state == 1)
{
bll.UpdateState(model.batch_id);
}
*/
log.write_log("启用考试批次成功。" + "批次名称:" + model.batch_name + ",批次id:" + model.batch_id);
//RadAjaxManager1.ResponseScripts.Add("alert('启用考试批次成功!');");
DataLoad();
}
else
RadAjaxManager1.Alert("启用考试批次失败!");
}
else if (e.CommandName == "stop")
{
var batch_id = (e.Item as GridDataItem).GetDataKeyValue("batch_id").ToString();
var model = bll.GetModel(batch_id);
/*
var now = DateTime.Now;
if (now >= model.start_time && now < model.end_time)
{
RadAjaxManager1.ResponseScripts.Add("alert('该考试批次正在进行中,禁止停用!') ");
return;
}
*/
model.state = 0; //停用
if (bll.Update(model))
{
log.write_log("停用考试批次成功。" + "批次名称:" + model.batch_name + ",批次id:" + model.batch_id);
//RadAjaxManager1.ResponseScripts.Add("alert('停用考试批次成功!');");
hd_mainId.Value = "";
DataLoad();
}
else
RadAjaxManager1.Alert("停用考试批次失败!");
}
}
protected void dataList_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = e.Item as GridDataItem;
Button btn_start = e.Item.FindControl("btn_start") as Button;
Button btn_stop = e.Item.FindControl("btn_stop") as Button;
int state = int.Parse(item.GetDataKeyValue("state").ToString());
if (state == 0) //禁用
{
btn_start.Visible = true;
btn_stop.Visible = false;
}
else if (state == 1) //启用
{
btn_start.Visible = false;
btn_stop.Visible = true;
//e.Item.CssClass = "row_highlight";
}
}
}
#region 关联列表方法
///
/// 绑定列表
///
public void DataLoad_Sub()
{
var main_id = hd_mainId.Value;
var query = new StringBuilder(" 1=1");
// old methods
//query.AppendFormat(" and(user_id in (select user_id from pro_fault_exam_paper where batch_id = '{0}') ", main_id);
//query.AppendFormat(" or user_id in (select user_id from pro_subject_batch_user where batch_id = '{0}') ", main_id);
//query.AppendFormat(" or user_id in (select user_id from pro_fault_batch_user where batch_id = '{0}')) ", main_id);
query.AppendFormat(" and(user_id in (select user_id from pro_fault_exam_paper where batch_id = '{0}') ", main_id);
query.AppendFormat(" or user_id in (select user_id from pro_subject_batch_user where batch_id = '{0}')) ", main_id);
var list = bll_user.GetModelList(query.ToString()).ToList();
//dataList_Sub.DataSource = list;
//dataList_Sub.Rebind();
}
protected void btnSelectSub_Click(object sender, EventArgs e)
{
DataLoad_Sub();
}
protected void dataList_Sub_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
DataLoad_Sub();
}
protected void dataList_Sub_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
{
DataLoad_Sub();
}
protected void dataList_Sub_SortCommand(object sender, GridSortCommandEventArgs e)
{
DataLoad_Sub();
}
//删除记录并绑定
protected void btnDelete_Sub_Click(object sender, EventArgs e)
{
var mainId = hd_mainId.Value;
var sub_id = hd_subId.Value;
/*
var model = bll_task_proc_material.GetModel(sub_id);
if (bll_task_proc_material.Delete(sub_id))
{
RadAjaxManager1.Alert("删除素材成功!");
log.write_log("删除素材成功。" + "名称:" + model.name + ",ID:" + sub_id + ",任务id:" + model.taskId + ",步骤id:" + model.proc_id);
}
*/
List list_admin_user = new List();
var user_model = bll_user.GetModel(sub_id);
list_admin_user.Add(user_model);
var batch_id = mainId;
var batch = bll.GetModel(batch_id);
if (null == batch)
{
return;
}
var now = DateTime.Now;
delete_subject(list_admin_user, batch, now);
RadAjaxManager1.ResponseScripts.Add("alert('删除成功!');");
DataLoad_Sub();
}
#endregion
//删除普通科目
private void delete_subject(List list_user, DataService.Model.pro_exam_batch batch, DateTime now)
{
var batch_id = batch.batch_id;
var user_id = list_user[0].user_id;
//已经考试科目 1、禁止删除、2、禁止添加
var exist_sql = " user_id ='" + user_id + "' and batch_id='" + batch.batch_id + "' and subject_id!='10003' and subject_id!='00003' ";
var kh_list = bll_result.GetModelList(exist_sql); //1条记录
List ks_subject_exists = new List();
if (kh_list.Count > 0)
{
ks_subject_exists.AddRange(kh_list.Select(s => s.subject_id).ToArray());
}
var subject_list_exists = bll_subject_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id));
List list = new List();
foreach (var item in subject_list_exists)
{
if (!ks_subject_exists.Contains(item.subject_id)) //禁止删除
{
list.Add("'" + item.id + "'");
}
}
if (list.Count > 0)
{
var id_list = string.Join(",", list.ToArray());
bll_subject_batch_user.DeleteList(id_list);
}
}
protected void dataList_SelectedIndexChanged(object sender, EventArgs e)
{
var value = dataList.SelectedValue;
}
}
}