/// <summary> /// 课程、考试、实践考评一起保存 /// </summary> /// <returns></returns> public JsonResult SaveCourseExamPract(int classId, string courseData, string examData, string practData) { try { using (TransactionScope tran = new TransactionScope()) { #region == 保存课程信息 == var dataList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Tr_TrainClassToCourse> >(courseData); var addList = new List <int>(); if (dataList.Any()) { _classManager.BatchDeleteCourse(classId); foreach (var course in dataList) { course.Code = "wxdewco" + DateTime.Now.ToString("yyyyMMddHHmmss"); if (course.CourseType == 1) { course.CourseId = 0; course.PlanType = 1; } course.CreateUserID = CurrentUser.UserId; course.CreateTime = DateTime.Now; course.OrderTime = DateTime.Now; _classManager.AddTrainClassToCourse(course); var contents = new List <Tr_TrainClassToCouseContent>(); var checks = new List <Tr_TrainClassToCouseCheck>(); var resource = new List <Tr_TrainClassToCourseResource>(); if (course.IsSend == 1) { addList.Add(course.ID); } foreach (var content in course.contentLsit) { content.CourseId = course.ID; contents.Add(content); } foreach (var check in course.checkLsit) { check.CourseId = course.ID; checks.Add(check); } foreach (var res in course.resourceLsit) { res.ClassCourseId = course.ID; resource.Add(res); } _classManager.BatchDeleteCourseResource(course.ID); _classManager.AddTrainClassToCourseResourceS(resource); _classManager.AddTrainClassToCourseContentS(contents); _classManager.AddTrainClassToCourseCheckS(checks); } } #endregion #region == 保存考试信息 == var examDataList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Tr_TrainClassToExam> >(examData); if (examDataList.Any()) { _classManager.BatchDeleteTrainClassToExam(classId); foreach (var exam in examDataList) { var timespan = (int)(exam.EndTime - exam.StartTime).TotalMinutes; if (timespan < exam.ExamLength) { return(Json(new { result = 3, content = LanguageResources.Exam.Examination.String3 }, JsonRequestBehavior.DenyGet)); } if (exam.ExamType == 1) { exam.ExamID = 0; } if (exam.ExamType == 0) { tbExamination exammodel = new tbExamination(); exammodel.PaperID = exam.PaperID; exammodel.ScoreOpenFlag = 0; exammodel.ApprovalUser = exam.ApprovalUser; exammodel.ExamBeginTime = exam.StartTime; exammodel.ExamEndTime = exam.EndTime; exammodel.ExaminationTitle = exam.ExamTitle; exammodel.ExamLength = exam.ExamLength; exammodel.PassScore = exam.PassScore; exammodel.PercentFlag = 0; exammodel.PublishedFlag = 0; exammodel.RadomOrderFlag = exam.RadomOrderFlag; exammodel.ShowType = 0; exammodel.TestTimes = exam.TestTimes; exammodel.ExamRules = ""; exammodel.StartCheating = 1; exammodel.LeavePageTimes = int.MaxValue; exammodel.AutoMarking = 1; exammodel.LastUpdateTime = DateTime.Now; exammodel.CreateTime = DateTime.Now; exammodel.UserID = CurrentUser.UserId; exammodel.TenantId = CurrentTenant.TenantId; exammodel.UserCount = 0; if (string.IsNullOrEmpty(exam.ApprovalUserIds)) { exammodel.ApprovalUser = new List <int>(); } else { exammodel.ApprovalUser = exam.ApprovalUserIds.Split(',') .Distinct() .Where(p => !string.IsNullOrEmpty(p)) .Select(int.Parse) .ToList(); } if (exam.ExamID == 0) { _examinationBL.AddExamination(exammodel); } else { exammodel._id = exam.ExamID; _examinationBL.ModifyExamination(exammodel); } exam.ExamID = exammodel._id; } _classManager.AddTrainClassToExam(exam); } } #endregion #region == 保存实践考评信息 == var practDataList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Tr_TrainClassToPractical> >(practData); if (practDataList.Any()) { _classManager.BatchDeleteTrainClassToPractical(classId); _classManager.AddTrainClassToPracticalS(practDataList); } #endregion tran.Complete(); } return(Json(new { result = 1, content = "保存成功" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { result = 0, content = "保存失败," + ex.Message }, JsonRequestBehavior.AllowGet)); } }