public ActionResult LearnOnLineTaskView(int TrainingId, int UnitContent, int ClassId) { #region 作业标题 var Model_Course_UnitContent = this.GetCourseUnitContentActivity(TrainingId, UnitContent, ClassId, false); #endregion #region 获取作业信息 var stbSqlWhere = new StringBuilder(); Course_UnitHomeWork Model_Course_UnitHomeWork = null; int iClassId = 0, iTrainingId = 0, iAccountId = 0, iUnitContent = 0; int.TryParse(Convert.ToString(Request["TrainingId"]) == "" ? "0" : QueryString.Decrypt(Request["TrainingId"]), out iTrainingId); int.TryParse(Convert.ToString(Request["UnitContent"]) == "" ? "0" : QueryString.Decrypt(Request["UnitContent"]), out iUnitContent); int.TryParse(Convert.ToString(Request["ClassId"]) == "" ? "0" : QueryString.Decrypt(Request["ClassId"]), out iClassId);//获取 ClassId iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; var HomeWorkBll = new Course_UnitHomeWorkBLL(); stbSqlWhere.AppendFormat(@" UnitContent = {0} AND ClassId = {1} AND AccountId = {2} AND Display = 1 AND Delflag = 0", iUnitContent, iClassId, iAccountId); var List_Course_UnitHomeWork = HomeWorkBll.GetList(stbSqlWhere.ToString(), string.Empty); if (List_Course_UnitHomeWork.Count > 0) { Model_Course_UnitHomeWork = List_Course_UnitHomeWork[0]; } double? dblScore = null; //查看当前活动是否已打分,若已打分则显示分数 this.GetActivityScore_Task(ClassId, iAccountId, UnitContent, out dblScore); ViewBag.Score = dblScore;//用于打分了的作业显示分数 ViewBag.Model_Course_UnitHomeWork = Model_Course_UnitHomeWork; #endregion return View(); }
/// <summary> /// 查看当前活动是否已打分,若已打分则禁止操作 /// </summary> /// <param name="iClassId"></param> /// <param name="iAccountId"></param> /// <param name="iUnitContent"></param> /// <param name="outScore"></param> /// <returns></returns> private bool GetActivityScore_Task(int iClassId, int iAccountId, int iUnitContent, out double? outScore) { double? dblScore = null; var bolResult = false; var Course_UnitHomeWorkbll = new Course_UnitHomeWorkBLL(); var Model_Course_UnitHomeWork = new Course_UnitHomeWork(); var strWhere_Activity = string.Format(@" Delflag = 0 AND ClassId = {0} AND AccountId = {1} AND UnitContent = {2}", iClassId, iAccountId, iUnitContent); var List_Course_UnitHomeWor = Course_UnitHomeWorkbll.GetList(strWhere_Activity, string.Empty); if (List_Course_UnitHomeWor != null && List_Course_UnitHomeWor.Count > 0) { Model_Course_UnitHomeWork = List_Course_UnitHomeWor[0]; if (Model_Course_UnitHomeWork.Score != null) { bolResult = true; dblScore = Model_Course_UnitHomeWork.Score; } } outScore = dblScore;//返回作业得分 return bolResult; }
/// <summary> /// [在线学习-作业] 新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult LearnOnLineTaskEdit(int UnitId, int ClassId, int TrainingId, int UnitContent, string Content, string AttList) { var stbSqlWhere = new StringBuilder(); var HomeWorkBll = new Course_UnitHomeWorkBLL(); var model = new Course_UnitHomeWork(); int AccountId = Code.SiteCache.Instance.LoginInfo.UserId; double? dblScore = null; //若课程已结束禁止操作 if (this.GetCourseIsOver(ClassId, TrainingId, AccountId)) return Json(new { Result = false, Msg = "提交失败.当前课程已结束,不能执行该操作!" }, JsonRequestBehavior.AllowGet); //查看当前活动是否已打分,若已打分则禁止操作 if (this.GetActivityScore_Task(ClassId, AccountId, UnitContent, out dblScore)) return Json(new { Result = false, Msg = "提交失败.当前活动已打分,不能执行该操作!" }, JsonRequestBehavior.AllowGet); model.UnitContent = UnitContent; model.ClassId = ClassId; model.Content = Content; model.AccountId = AccountId; model.AttList = AttList; model.Content = Content; stbSqlWhere.AppendFormat(@" UnitContent = {0} AND ClassId = {1} AND AccountId = {2} AND Display = 1 AND Delflag = 0", model.UnitContent, model.ClassId, model.AccountId); var List_Course_UnitHomeWork = HomeWorkBll.GetList(stbSqlWhere.ToString(), string.Empty); if (List_Course_UnitHomeWork.Count > 0) { var ModelTmp = List_Course_UnitHomeWork[0]; model.Id = ModelTmp.Id; model.Display = ModelTmp.Display; model.Delflag = ModelTmp.Delflag; model.CreateDate = DateTime.Now; model.Score = ModelTmp.Score; model.ScoreCreater = ModelTmp.ScoreCreater; if (HomeWorkBll.Update(model)) { //更新总体进度 this.UpdateOverallProgress(UnitId, ClassId, TrainingId, AccountId, UnitContent); return Json(new { Result = true, Msg = "作业更新成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "作业更新失败!" }, JsonRequestBehavior.AllowGet); } } else { model.Delflag = false; model.Display = true; model.CreateDate = DateTime.Now; model.Score = null; if (HomeWorkBll.Add(model)) { //更新总进度 this.UpdateOverallProgress(UnitId, ClassId, TrainingId, AccountId, UnitContent); return Json(new { Result = true, Msg = "作业新增成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "作业新增失败!" }, JsonRequestBehavior.AllowGet); } } }
/// <summary> /// 重新打分 /// </summary> /// <param name="classId"></param> /// <param name="planId"></param> /// <param name="accountId"></param> public static void resetScore(int classId, int planId) { var member_classBll = new Member_ClassRegisterBLL(); var classDetail = new Class_DetailBLL().GetModel(classId); var traningBll = new Traning_DetailBLL(); var traning_detail = traningBll.GetModel(classDetail.TraningId, ""); if (traning_detail == null) return; var courseBll = new Course_DetailBLL(); var cousre_detail = courseBll.GetList(" TrainingId=" + traning_detail.Id, ""); if (cousre_detail == null || cousre_detail.Count == 0) return; var unitContentBll = new Course_UnitContentBLL(); var memberList = member_classBll.GetList("Delflag=0 and ClassId=" + classId + " and PlanId=" + planId, ""); foreach (var memberModel in memberList) { var accountId = memberModel.AccountId; int total = 1; IList<Course_UnitContent> contentList = new List<Course_UnitContent>(); #region //重新计算阅读分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "1,2"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "1,2")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); int scoreCount = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue)//如果有值说明打过分 { scoreCount++; } } } if (scoreCount == total)//全部阅读过,给满分 { memberModel.ReadingScore = cousre_detail[0].ReadingRate; } else { memberModel.ReadingScore = cousre_detail[0].ReadingRate * scoreCount / total;//阅读数与总数折算 } } //重新计算讨论分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "3"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "3")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); int scoreCount = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue)//如果有值说明打过分 { scoreCount++; } } } if (scoreCount == total)//全部讨论过,给满分 { memberModel.DiscussScore = cousre_detail[0].DisscusRate; } else { memberModel.DiscussScore = cousre_detail[0].DisscusRate * scoreCount / total;//讨论数与总数折算 } } //如有分值,重新计算作业分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "4"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "4")); if (contentList != null) { var homeworkBll = new Course_UnitHomeWorkBLL(); double homeworkscore = 0; foreach (var item in contentList) { var scheduleModel = homeworkBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().Score.HasValue)//如果有值说明打过分 { homeworkscore += (scheduleModel.First().Score.Value * (cousre_detail[0].HomeWorkRate) / (total * 100)).ToDouble();//已打分数与总数折算 } } } memberModel.HomeWorkScore = homeworkscore; } //重新计算测试分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "5"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "5")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); double testscore = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue) { testscore += (scheduleModel.First().score.Value * (cousre_detail[0].QuestionRate) / (total * 100)).ToDouble(); } } } memberModel.TestingScore = testscore; } //重新计算考试分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "6"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "6")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); double examcore = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue) { examcore += (scheduleModel.First().score.Value * (cousre_detail[0].TestingRate) / (total * 100)).ToDouble(); } } } memberModel.ExaminationScore = examcore; } #endregion member_classBll.Update(memberModel); } }