//重现题目 public ActionResult _showtitle(string chapterSectionId) { var id = Convert.ToInt32(chapterSectionId); LearningPlatformEntities lpfe = new LearningPlatformEntities(); LearningViewModels lvm = new LearningViewModels(); var uid = User.Identity.GetUserId(); var userId = lpfe.AspNetUsers.Single(m => m.Id == uid).NewId; lvm.chapterSection = new List<ChapterSection>(); lvm.singleSelections = new List<SingleSelections>(); lvm.exerciseProblems = new List<ExerciseProblems>(); lvm.exerciseSetTracking = new List<ExerciseSetTracking>(); lvm.fillBlanks = new List<FillBlanks>(); lvm.testProblems = new List<TestProblems>(); lvm.testSetTracking = new List<TestSetTracking>(); lvm.exerciseSet = new List<ExerciseSet>(); lvm.testSet = new List<TestSet>(); var cs = lpfe.ChapterSection.Single(m => m.Id == id); lvm.chapterSection.Add(cs); if (cs.SectionType == 1) { var es = lpfe.ExerciseSet.Where(m => m.theChapterSection == cs.Id).ToList(); foreach (var ess in es) { switch (ess.SetType) { case 1: var temp1 = lpfe.ExerciseSetTracking.Where(m => m.theExerciseSet == ess.Id&m.theLearner==userId).ToList().Max(m => m.TryOrd); var est1 = lpfe.ExerciseSetTracking.Single(m => m.theExerciseSet == ess.Id & m.TryOrd == temp1 & m.theLearner == userId); var ep1 = lpfe.ExerciseProblems.Where(m => m.theExecriseSetTracking == est1.Id).ToList(); foreach (var epp in ep1) { var num1 = lpfe.SingleSelections.Count(m => m.Id == epp.ProblemOrd); if (num1 > 0) { var ss = lpfe.SingleSelections.Single(m => m.Id == epp.ProblemOrd); lvm.singleSelections.Add(ss); lvm.exerciseProblems.Add(epp); } } lvm.exerciseSetTracking.Add(est1); break; case 2: var temp2 = lpfe.ExerciseSetTracking.Where(m => m.theExerciseSet == ess.Id & m.theLearner == userId).ToList().Max(m => m.TryOrd); var est2 = lpfe.ExerciseSetTracking.Single(m => m.theExerciseSet == ess.Id & m.TryOrd == temp2 & m.theLearner == userId); var ep2 = lpfe.ExerciseProblems.Where(m => m.theExecriseSetTracking == est2.Id).ToList(); foreach (var epp in ep2) { var num2 = lpfe.FillBlanks.Count(m => m.Id == epp.ProblemOrd); if (num2 > 0) { var fb = lpfe.FillBlanks.Single(m => m.Id == epp.ProblemOrd); lvm.fillBlanks.Add(fb); lvm.exerciseProblems.Add(epp); } } lvm.exerciseSetTracking.Add(est2); break; case 3: break; case 4: break; default: break; } lvm.exerciseSet.Add(ess); } } else { var ts = lpfe.TestSet.Where(m => m.theChapterSection == cs.Id).ToList(); foreach (var tss in ts) { switch (tss.SetType) { case 1: var est1 = lpfe.TestSetTracking.Single(m => m.theTestSet == tss.Id&m.theLearner==userId); var ep1 = lpfe.TestProblems.Where(m => m.theTestSetTracking == est1.Id).ToList(); foreach (var epp in ep1) { var num1 = lpfe.SingleSelections.Count(m => m.Id == epp.ProblemOrd); if (num1 > 0) { var ss = lpfe.SingleSelections.Single(m => m.Id == epp.ProblemOrd); lvm.singleSelections.Add(ss); lvm.testProblems.Add(epp); } } lvm.testSetTracking.Add(est1); break; case 2: var est2 = lpfe.TestSetTracking.Single(m => m.theTestSet == tss.Id&m.theLearner==userId); var ep2 = lpfe.TestProblems.Where(m => m.theTestSetTracking == est2.Id).ToList(); foreach (var epp in ep2) { var num2 = lpfe.FillBlanks.Count(m => m.Id == epp.ProblemOrd); if (num2 > 0) { var fb = lpfe.FillBlanks.Single(m => m.Id == epp.ProblemOrd); lvm.fillBlanks.Add(fb); lvm.testProblems.Add(epp); } } lvm.testSetTracking.Add(est2); break; case 3: break; case 4: break; default: break; } lvm.testSet.Add(tss); } } return View(lvm); }
//获取题目 public ActionResult _title(string chapterSectionId, string courseId, int ability) { LearningPlatformEntities lpe = new LearningPlatformEntities(); //var uid = User.Identity.GetUserId(); //var userId = lpe.AspNetUsers.Single<AspNetUsers>(m => m.Id == uid).NewId; //var ability = lpe.LearnerBookmarker.Single<LearnerBookmarker>(m => m.theLearner == userId).theLearnerAbility; LearningViewModels lvm = new LearningViewModels(); lvm.chapterSection = new List<ChapterSection>(); lvm.exerciseSet = new List<ExerciseSet>(); lvm.testSet = new List<TestSet>(); lvm.singleSelections = new List<SingleSelections>(); lvm.fillBlanks = new List<FillBlanks>(); lvm.programProblems = new List<ProgramProblems>(); lvm.setCapacity = new List<SetCapacity>(); var id = Convert.ToInt32(chapterSectionId); var cs = lpe.ChapterSection.Single(m => m.Id == id); lvm.chapterSection.Add(cs); if (cs.SectionType == 1) { var es = lpe.ExerciseSet.Where(m => m.theChapterSection == cs.Id).ToList(); foreach (var exe in es) { var capactiy = lpe.SetCapacity.Single(m => m.theExerciseSet == exe.Id && m.theLearnerAbility == ability); var num = capactiy.Capacity; switch (exe.SetType) { case 1: var ssl = lpe.SingleSelections.Where(m => m.theSet == exe.Id && m.ForTest == 0).ToList(); { int[] ord = NorepeatRandom.Random(ssl.Count); for (int i = 0; i < num; i++) { lvm.singleSelections.Add(ssl[ord[i]]); } } break; case 2: var fbl = lpe.FillBlanks.Where(m => m.theSet == exe.Id && m.ForTest == 0).ToList(); { int[] ord = NorepeatRandom.Random(fbl.Count); for (int i = 0; i < num; i++) { lvm.fillBlanks.Add(fbl[ord[i]]); } } break; case 3: break; case 4: var ppb = lpe.ProgramProblems.Where(m => m.theSet == exe.Id && m.ForTest == 0).ToList(); { int[] ord = NorepeatRandom.Random(ppb.Count); for (int i = 0; i < num; i++) { lvm.programProblems.Add(ppb[ord[i]]); } } break; } lvm.exerciseSet.Add(exe); } } else { var ts = lpe.TestSet.Where(m => m.theChapterSection == cs.Id).ToList(); foreach (var tss in ts) { var ssl = lpe.SingleSelections.Where(m => m.theSet == tss.Id && m.ForTest == 1).ToList(); { foreach (var ss in ssl) { lvm.singleSelections.Add(ss); } } var fbl = lpe.FillBlanks.Where(m => m.theSet == tss.Id && m.ForTest == 1).ToList(); { foreach (var fb in fbl) { lvm.fillBlanks.Add(fb); } } var ppb = lpe.ProgramProblems.Where(m => m.theSet == tss.Id && m.ForTest == 1).ToList(); { foreach (var pp in ppb) { lvm.programProblems.Add(pp); } } lvm.testSet.Add(tss); } } return View(lvm); }
// // GET: /Learn/ public ActionResult Learn(string Id="1") { int id = Convert.ToInt32(Id); LearningPlatformEntities lpfe = new LearningPlatformEntities(); var uid = User.Identity.GetUserId(); var userId = lpfe.AspNetUsers.Single<AspNetUsers>(m => m.Id == uid).NewId; var flag = lpfe.Order.Count(m => m.theUser == userId & m.theCourse == id & m.Orderstate == 1); if (flag == 1) { LearningViewModels lvm = new LearningViewModels(); lvm.courseChapter = new List<CourseChapter>(); lvm.chapterSection = new List<ChapterSection>(); lvm.courses = new List<Course>(); //获取该门课程的数据 lvm.courses.Add(lpfe.Course.Single<Course>(m => m.Id == id)); //获取课程下面的章和节 var CourseChapter = lpfe.CourseChapter.Where<CourseChapter>(m => m.theCourse == id).ToList(); foreach (var cc in CourseChapter) { var result = lpfe.ChapterSection.Where<ChapterSection>(m => m.theCourseChapter == cc.Id).ToList(); foreach (var cs in result) { lvm.chapterSection.Add(cs); } lvm.courseChapter.Add(cc); } //var num = lpfe.ChapterLearning.Count(m => m.Id == id && m.theLearner == userId); //if (num > 0) //{ // var chapterLearning = lpfe.ChapterLearning.Single(m => m.Id == id && m.theLearner == userId); // lvm.chapterLearning = chapterLearning.theChapter; // var sectionLearning = lpfe.SectionLearning.Single(m => m.Id == id && m.theLearner == userId); // lvm.sectionLearning = sectionLearning.theSection; //} //else //{ // lvm.chapterLearning = 1; // lvm.sectionLearning = 1; //} var num = 0; var chapid = lpfe.CourseChapter.Where(m => m.theCourse == id).ToList(); foreach (var chid in chapid) { num = lpfe.ChapterLearning.Count(m => m.theLearner == userId & m.theChapter == chid.Id); if (num == 1) { num = 1; break; } } if (num > 0) { var chapterid = lpfe.ChapterLearning.Where(m => m.theLearner == userId).ToList(); foreach (var c in chapterid) { var cid = lpfe.CourseChapter.Single(m => m.Id == c.theChapter); if (id == cid.theCourse) { lvm.chapterLearning = cid.SequenceType; var sectionid = lpfe.SectionLearning.Where(m => m.theLearner == userId).ToList(); foreach (var st in sectionid) { var sid = lpfe.ChapterSection.Single(m => m.Id == st.theSection); if (sid.theCourseChapter == cid.Id) { lvm.sectionLearning = Convert.ToInt32(sid.SectionOrd); } } num = 1; break; } else { num = 0; } } } if(num<=0) { var cl = lpfe.CourseChapter.Single(m => m.theCourse == id & m.SequenceType == 1); var sl = lpfe.ChapterSection.Single(m => m.theCourseChapter == cl.Id & m.SectionOrd == "1"); lvm.chapterLearning = cl.SequenceType; lvm.sectionLearning = Convert.ToInt32(sl.SectionOrd); } return View(lvm); } else { return Redirect("~/Payment/Index/" + Id); } //LearningPlatformEntities lpfe = new LearningPlatformEntities(); //LearningViewModels lvm = new LearningViewModels(); //lvm.courseChapter = new List<CourseChapter>(); //lvm.chapterSection = new List<ChapterSection>(); //lvm.courses = new List<Course>(); //lvm.courses.Add(lpfe.Course.Single<Course>(m => m.Id == 1)); //var CourseChapter = lpfe.CourseChapter.Where<CourseChapter>(m => m.theCourse==1).ToList(); //foreach (var cc in CourseChapter) //{ // var result = lpfe.ChapterSection.Where<ChapterSection>(m => m.theCourseChapter == cc.Id).ToList(); // foreach (var cs in result) // { // lvm.chapterSection.Add(cs); // } // lvm.courseChapter.Add(cc); //} //var lbm = lpfe.LearnerBookmarker.Single(m => m.theCourse == 1); //if (lbm.theExerciseSet == null && lbm.theTestSet != null) //{ // var cChapter = lpfe.TestSet.Single(m => m.Id == lbm.theTestSet); // var cSection = lpfe.ChapterSection.Single(m => m.Id == cChapter.theChapterSection); // lvm.courseChap = cSection.theCourseChapter; // lvm.chapterSec = Convert.ToInt32(cSection.SectionOrd.ToString()); //} //else if (lbm.theExerciseSet != null && lbm.theTestSet == null) //{ // var cChapter = lpfe.ExerciseSet.Single(m => m.Id == lbm.theExerciseSet); // var cSection = lpfe.ChapterSection.Single(m => m.Id == cChapter.theChapterSection); // lvm.courseChap = cSection.theCourseChapter; // lvm.chapterSec = Convert.ToInt32(cSection.SectionOrd.ToString().Trim()); //} //return View(lvm); }