public JsonResult DeleteConfirmed(int id) { BaseJsonData json = new BaseJsonData(); Course_Info courseModel = db.Course_Infos.Find(id); //权限校验 //有在上课的课程不能删 if (db.Course_vs_Times.Where(x => x.cvt_course_id == id && (x.cvt_state == 2 || x.cvt_state == 3)).Count() > 0) { json.msg_text = "课程已经进行中,无当删除。"; return(Json(json)); } db.Course_Infos.Remove(courseModel); int res = db.SaveChanges(); if (res > 0) { var cvt = db.Course_vs_Times.Where(x => x.cvt_course_id == id); if (cvt.Count() > 0) { db.Course_vs_Times.RemoveRange(cvt); db.SaveChanges(); } json.state = 1; } else { json.msg_text = "删除失败。"; } RemoveCache(courseModel.c_sub_id); return(Json(json)); }
// GET: Course/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Course_Info courseModel = db.Course_Infos.Find(id); if (courseModel == null) { return(HttpNotFound()); } return(View(courseModel)); }
public JsonResult Edit(CourseModel courseModel) { BaseJsonData json = new BaseJsonData(); if (ModelState.IsValid) { Course_Info cmodel = db.Course_Infos.Find(courseModel.id); if (cmodel == null) { json.msg_text = "更新失败,该课程不存在或已删除。"; return(Json(json, JsonRequestBehavior.AllowGet)); } string time_info = ""; cmodel.course_cost = courseModel.cost; cmodel.course_introduce = courseModel.introduce; cmodel.course_max_num = courseModel.max; cmodel.course_name = courseModel.name; cmodel.c_assistant_id = courseModel.assistant; cmodel.c_cs_id = courseModel.season; cmodel.c_sub_id = courseModel.subject; cmodel.c_room = courseModel.room; cmodel.c_teacher_id = courseModel.teacher; cmodel.c_room = courseModel.room; cmodel.c_type_id = courseModel.type; foreach (ListTime lTiem in courseModel.ListTimes) { if (lTiem.count > 1) { time_info += "每"; } time_info += string.Format("{0}{1} ", WeeK.GetCHNDay(lTiem.day), lTiem.lessonTime); if (lTiem.times != null && lTiem.times.Count > 0) { //删除在页面删除的时间点 if (lTiem.cgroup > 0) { var t_list = from cvt2 in lTiem.times select cvt2.id; var delete_cvt = from cvt in db.Course_vs_Times where cvt.cvt_id != 0 && cvt.cvt_course_id == courseModel.id && cvt.cvt_group == lTiem.cgroup && !t_list.Contains(cvt.cvt_id) select cvt; if (delete_cvt.Count() > 0) { db.Course_vs_Times.RemoveRange(delete_cvt); db.SaveChanges(); } } else { var list = db.Course_vs_Times.Where(x => x.cvt_course_id == courseModel.id); if (list.Count() > 0) { lTiem.cgroup = list.Max(x => x.cvt_group).Value + 1; } else { lTiem.cgroup = 1; } } foreach (ListDetailTime time in lTiem.times) { Course_vs_Time cvt = db.Course_vs_Times.Find(time.id); if (cvt == null) { cvt = new Course_vs_Time(); cvt.cvt_course_id = courseModel.id; cvt.cvt_dayofweek = lTiem.day; cvt.cvt_duration = lTiem.lastlong; cvt.cvt_info = time.info; cvt.cvt_is_extra = time.isextra; cvt.cvt_state = time.state == 0?1: time.state; cvt.cvt_time = time.time; if (time.room == 0) { cvt.cvt_room_id = courseModel.room; } else { cvt.cvt_room_id = time.room; } cvt.cvt_group = lTiem.cgroup; db.Course_vs_Times.Add(cvt); db.SaveChanges(); } else { cvt.cvt_course_id = courseModel.id; cvt.cvt_dayofweek = lTiem.day; cvt.cvt_duration = lTiem.lastlong; cvt.cvt_info = time.info; cvt.cvt_is_extra = time.isextra; cvt.cvt_state = time.state == 0 ? 1 : time.state; cvt.cvt_time = time.time; if (time.room == 0) { cvt.cvt_room_id = courseModel.room; } else { cvt.cvt_room_id = time.room; } cvt.cvt_group = lTiem.cgroup; db.Entry(cvt).State = EntityState.Modified; db.SaveChanges(); } } } else { Course_vs_Time cvtModel; int group; var list = db.Course_vs_Times.Where(x => x.cvt_course_id == courseModel.id); if (list.Count() > 0) { group = list.Max(x => x.cvt_group).Value + 1; } else { group = 1; } List <DateTime> ListTime = CreateTimeDetail(courseModel.SuspendDays, courseModel.beginDate, lTiem.lessonTime, lTiem.day, lTiem.count); List <Course_vs_Time> cvtList = new List <Course_vs_Time>(); foreach (DateTime dtLesson in ListTime) { cvtModel = new Course_vs_Time(); cvtModel.cvt_course_id = courseModel.id; cvtModel.cvt_dayofweek = lTiem.day; cvtModel.cvt_is_extra = false; cvtModel.cvt_state = 1; cvtModel.cvt_time = dtLesson; cvtModel.cvt_duration = lTiem.lastlong; cvtModel.cvt_room_id = courseModel.room; cvtModel.cvt_group = group; cvtList.Add(cvtModel); } try { db.Course_vs_Times.AddRange(cvtList); db.SaveChanges(); } catch (Exception e) { json.msg_text = "课程时间编排出错,请重新操作。"; return(Json(json, JsonRequestBehavior.AllowGet)); } } } cmodel.c_time_info = time_info; db.Entry(cmodel).State = EntityState.Modified; //录入停课日期 if (courseModel.SuspendDays != null && courseModel.SuspendDays.Count() > 0) { foreach (DateTime dt in courseModel.SuspendDays) { if (db.Course_SuspendTimes.Where(x => x.cst_course_id == courseModel.id && x.cst_suspend_time.Year == dt.Year && x.cst_suspend_time.Month == dt.Month && x.cst_suspend_time.Day == dt.Day).Count() == 0) { db.Course_SuspendTimes.Add(new Course_SuspendTime { cst_course_id = courseModel.id, cst_suspend_time = dt }); } } } db.SaveChanges(); json.state = 1; json.msg_text = "更新完成。"; RemoveCache(courseModel.subject); } else { var errors = ModelState.Where(x => x.Value.Errors.Count() > 0); StringBuilder sbMsg = new StringBuilder(); foreach (var modelstate in errors) { if (modelstate.Value.Errors.Count() > 0) { foreach (ModelError err in modelstate.Value.Errors) { sbMsg.Append(modelstate.Key).Append(" ").Append(err.ErrorMessage).Append("<br />"); } } } //foreach (ModelError err in errors) //{ // sbMsg.Append(err.ErrorMessage).Append("<br />"); //} json.state = 0; json.msg_text = sbMsg.ToString(); } return(Json(json, JsonRequestBehavior.AllowGet)); }