public dynamic SaveSubjectNode(XkSystem.Models.DbContext db, string ids, Entity.tbSurveyGroup surveyGroup, int surveyId) { //查出整个评价Id的所有组的科目列表 var tb = (from p in db.Table <Entity.tbSurveyCourse>() .Include(d => d.tbSurveyGroup) .Include(d => d.tbCourse) where p.tbSurveyGroup.tbSurvey.Id == surveyId && p.tbCourse.IsDeleted == false && p.tbSurveyGroup.IsDeleted == false && p.tbSurveyGroup.tbSurvey.IsDeleted == false select p).ToList(); //-1为虚构的根节点,要去掉 var idArr = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Where(d => d.ConvertToInt() != -1).Select(d => d.ConvertToInt()); //取交集,同一SurveyId中的多个分组Subject不能重复,且判断GroupId不能是当前要修改的Id bool flag = tb.Where(d => d.tbSurveyGroup.Id != surveyGroup.Id).Select(d => d.tbCourse.Id).Intersect(idArr).Count() > 0; if (flag) { return new { Status = decimal.Zero, Message = "同一评价下不同分组课程不能重复!" } } ; //修改当前分组的老数据为删除状态 foreach (var a in tb.Where(d => d.tbSurveyGroup.Id == surveyGroup.Id)) { a.IsDeleted = true; } var addtbSurveyCourseList = new List <Entity.tbSurveyCourse>(); foreach (var id in idArr) { var temp = new Entity.tbSurveyCourse(); temp.tbSurveyGroup = surveyGroup; temp.tbCourse = db.Set <Course.Entity.tbCourse>().Find(id); addtbSurveyCourseList.Add(temp); } db.Set <Entity.tbSurveyCourse>().AddRange(addtbSurveyCourseList); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价课程"); return(new { Status = decimal.One, Message = "操作成功!" }); }
public ActionResult Edit(Models.Survey.Edit vm) { using (var db = new XkSystem.Models.DbContext()) { int surveyId = 0; var error = new List <string>(); if (error.Count == decimal.Zero) { if (vm.SurveyEdit.Id == 0) { if (vm.CreateWay == "复制历史" && vm.CopySurveyId == 0) { error.AddError("请选择需要复制的历史评教设置!"); } var tb = new Entity.tbSurvey(); tb.No = vm.SurveyEdit.No == null?db.Table <Entity.tbSurvey>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyEdit.No; tb.tbYear = db.Set <Basis.Entity.tbYear>().Find(vm.SurveyEdit.YearId); tb.SurveyName = vm.SurveyEdit.SurveyName; tb.FromDate = vm.SurveyEdit.FromDate; tb.ToDate = vm.SurveyEdit.ToDate; tb.IsOpen = vm.SurveyEdit.IsOpen; tb.Remark = vm.SurveyEdit.Remark; db.Set <Entity.tbSurvey>().Add(tb); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加教师评价"); } surveyId = tb.Id; #region 制历史 if (vm.CreateWay == "复制历史" && vm.CopySurveyId != 0) { var copySurvey = (from p in db.Table <Entity.tbSurvey>() where p.Id == vm.CopySurveyId select p).FirstOrDefault(); #region tbSurveyClass var copySurveyClassList = (from p in db.Table <Entity.tbSurveyClass>() .Include(p => p.tbClass) where p.tbSurvey.Id == vm.CopySurveyId select p).ToList(); foreach (var surveyClass in copySurveyClassList) { var sc = new Entity.tbSurveyClass(); sc.tbSurvey = tb; sc.tbClass = surveyClass.tbClass; db.Set <Entity.tbSurveyClass>().Add(sc); } db.SaveChanges(); #endregion #region tbSurveyGroup var copySurveyGroupList = (from p in db.Table <Entity.tbSurveyGroup>() where p.tbSurvey.Id == vm.CopySurveyId select p).ToList(); var dbSurveyCourseList = (from p in db.Table <Entity.tbSurveyCourse>() .Include(p => p.tbCourse) where p.tbSurveyGroup.tbSurvey.Id == vm.CopySurveyId select p).ToList(); var dbSurveyItemList = (from p in db.Table <Entity.tbSurveyItem>() where p.tbSurveyGroup.tbSurvey.Id == vm.CopySurveyId select p).ToList(); var dbSurveyOptionList = (from p in db.Table <Entity.tbSurveyOption>() where p.tbSurveyItem.tbSurveyGroup.tbSurvey.Id == vm.CopySurveyId select p).ToList(); foreach (var surveyGroup in copySurveyGroupList) { int copySurveyGroupId = surveyGroup.Id; var sg = new Entity.tbSurveyGroup(); sg.No = surveyGroup.No; sg.SurveyGroupName = surveyGroup.SurveyGroupName; sg.IsOrg = surveyGroup.IsOrg; sg.tbSurvey = tb; db.Set <Entity.tbSurveyGroup>().Add(sg); #region tbSurveyCourse var copySurveyCourseList = dbSurveyCourseList.Where(p => p.tbSurveyGroup.Id == copySurveyGroupId).ToList(); foreach (var surveyCourse in copySurveyCourseList) { var sc = new Entity.tbSurveyCourse(); sc.tbCourse = surveyCourse.tbCourse; sc.tbSurveyGroup = sg; db.Set <Entity.tbSurveyCourse>().Add(sc); } #endregion #region tbSurveyItem var copySurveyItemList = dbSurveyItemList.Where(p => p.tbSurveyGroup.Id == copySurveyGroupId).ToList(); foreach (var surveyItem in copySurveyItemList) { int copySurveyItemId = surveyItem.Id; var si = new Entity.tbSurveyItem(); si.No = surveyItem.No; si.SurveyItemName = surveyItem.SurveyItemName; si.TextMaxLength = surveyItem.TextMaxLength; si.SurveyItemType = surveyItem.SurveyItemType; si.IsVertical = surveyItem.IsVertical; si.tbSurveyGroup = sg; db.Set <Entity.tbSurveyItem>().Add(si); #region tbSurveyOption var copySurveyOptionList = dbSurveyOptionList.Where(p => p.tbSurveyItem.Id == copySurveyItemId).ToList(); foreach (var surveyOption in copySurveyOptionList) { var so = new Entity.tbSurveyOption(); so.No = surveyOption.No; so.OptionName = surveyOption.OptionName; so.OptionValue = surveyOption.OptionValue; so.tbSurveyItem = si; db.Set <Entity.tbSurveyOption>().Add(so); } #endregion } #endregion } #endregion db.SaveChanges(); } #endregion } else { var tb = (from p in db.Table <Entity.tbSurvey>() where p.Id == vm.SurveyEdit.Id select p).FirstOrDefault(); if (tb != null) { surveyId = tb.Id; tb.No = vm.SurveyEdit.No == null?db.Table <Entity.tbSurvey>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyEdit.No; tb.SurveyName = vm.SurveyEdit.SurveyName; tb.tbYear = db.Set <Basis.Entity.tbYear>().Find(vm.SurveyEdit.YearId); tb.FromDate = vm.SurveyEdit.FromDate; tb.ToDate = vm.SurveyEdit.ToDate; tb.IsOpen = vm.SurveyEdit.IsOpen; tb.Remark = vm.SurveyEdit.Remark; if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改教师评价"); } } else { error.AddError(Resources.LocalizedText.MsgNotFound); } } } if (Request["Step"] != null) { return(Code.MvcHelper.Post(error, Url.Action("List", "SurveyClass", new { surveyId = surveyId }))); } else { return(Code.MvcHelper.Post(error, Url.Action("List"))); } } }
public ActionResult Edit(Models.SurveyGroup.Edit vm) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); if (error.Count == decimal.Zero) { var tb = new Entity.tbSurveyGroup(); if (vm.SurveyGroupEdit.Id == 0) { tb.No = vm.SurveyGroupEdit.No == null?db.Table <Entity.tbSurveyGroup>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyGroupEdit.No; tb.SurveyGroupName = vm.SurveyGroupEdit.SurveyGroupName; tb.tbSurvey = db.Set <Entity.tbSurvey>().Find(vm.SurveyId); tb.IsOrg = vm.SurveyGroupEdit.IsOrg; db.Set <Entity.tbSurveyGroup>().Add(tb); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加评价分组"); } else { tb = (from p in db.Table <Entity.tbSurveyGroup>() where p.Id == vm.SurveyGroupEdit.Id select p).FirstOrDefault(); if (tb != null) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改评价分组"); tb.No = vm.SurveyGroupEdit.No == null?db.Table <Entity.tbSurveyGroup>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.SurveyGroupEdit.No; tb.SurveyGroupName = vm.SurveyGroupEdit.SurveyGroupName; tb.IsOrg = vm.SurveyGroupEdit.IsOrg; } } //新增:班主任评价,不保存课程 if (vm.SurveyGroupEdit.IsOrg == false) { if (vm.SurveyGroupEdit.Id > decimal.Zero) { var tbSurveyCourse = (from p in db.Table <Entity.tbSurveyCourse>() where p.tbSurveyGroup.Id == vm.SurveyGroupEdit.Id select p).ToList(); foreach (var a in tbSurveyCourse) { //删除数据 a.IsDeleted = true; a.UpdateTime = DateTime.Now; } } db.SaveChanges(); } else { var errorSubject = new SurveyCourseController().SaveSubjectNode(db, Request["txtSubjectIds"], tb, vm.SurveyId); if (errorSubject.Status == decimal.Zero) { return(Json(errorSubject));//出错抛出 } else { db.SaveChanges(); } } } return(Code.MvcHelper.Post(error, null)); } }