public async Task <IActionResult> DetailsForStudent(int?id) { if (id == null) { return(NotFound()); } var course = await _context.Course .Include(c => c.CourseDocuments) .Include(c => c.Modules) .ThenInclude(c => c.Activities) .FirstOrDefaultAsync(c => c.Id == id); if (course == null) { return(NotFound()); } course.Modules = course.Modules .OrderBy(m => m.StartDate.Date) .ThenBy(m => m.EndDate) .ToList(); foreach (CourseModule m in course.Modules) { m.Activities = m.Activities .OrderBy(a => a.StartDate.Date) .ThenBy(a => a.EndDate).ToList(); } var user = await _userManager.Users.FirstOrDefaultAsync(u => u.UserName == User.Identity.Name); int?currentModuleId = null; foreach (CourseModule mod in course.Modules) { foreach (CourseActivity act in mod.Activities) { if (act.Id == user.CourseActivityId) { currentModuleId = act.ModuleId; break; } } if (currentModuleId != null) { break; } } if (user.CourseActivityId == null) { var firstModule = course.Modules.FirstOrDefault(m => true); if (firstModule == null) { return(View(new CourseForStudent() { activeModuleId = null, activeActivityId = null, course = course })); } currentModuleId = firstModule.Id; var firstActivity = firstModule.Activities.FirstOrDefault(a => true); if (firstActivity == null) { return(View(new CourseForStudent() { activeModuleId = currentModuleId, activeActivityId = null, course = course })); } user.CourseActivityId = firstActivity.Id; _context.Update(user); _context.SaveChanges(); } var cfs = new CourseForStudent() { activeModuleId = currentModuleId, activeActivityId = user.CourseActivityId, course = course }; return(View(cfs)); }
public async Task <IActionResult> Index1() { var stu_id = userManager.GetUserId(User); var course_id = await _context.LMSUserCourses .Where(s => s.LMSUserId == stu_id) .Select(c => c.CourseId) .FirstOrDefaultAsync(); //if (id == null) //{ // return NotFound(); //} var course = await _context.Courses.Include(d => d.CourseDocuments) .Include(m => m.CourseModules) .ThenInclude(a => a.ModuleActivities) .FirstOrDefaultAsync(c => c.CourseId == course_id); if (course == null) { return(NotFound()); } course.CourseModules = course.CourseModules .OrderBy(m => m.StartDate.Date) .ThenBy(m => m.EndDate) .ToList(); foreach (Module m in course.CourseModules) { m.ModuleActivities = m.ModuleActivities .OrderBy(a => a.StartDate.Date) .ThenBy(a => a.EndDate).ToList(); } var user = await userManager.Users.FirstOrDefaultAsync(u => u.UserName == User.Identity.Name); int?currentModuleId = null; foreach (var mod in course.CourseModules) { foreach (Activity act in mod.ModuleActivities) { currentModuleId = act.ModuleId; break; } if (currentModuleId != null) { break; } } var currentActivityId = _context.Activities.Where(a => a.ModuleId == currentModuleId); var cfs = new CourseForStudent() { activeModuleId = currentModuleId, course = course }; foreach (var coursedocuments in cfs.course.CourseDocuments) { coursedocuments.DocumentPath = Path.GetFileName(coursedocuments.DocumentPath); var documentid = coursedocuments.DocumentId; var documents = _context.Documents.Include(c => c.Course).Include(m => m.Module).Include(a => a.Activity) .Where(d => d.DocumentId == documentid) .Select(d => new { id = d.DocumentId, courseid = d.CourseId, coursename = d.Course.CourseName, moduleid = d.ModuleId, modulename = d.Module.ModuleName, activityid = d.ActivityId, activityname = d.Activity.ActivityName }).FirstOrDefault(); var entity = ""; var entityname = ""; if ((documents.activityid != null) && (documents.moduleid != null) && (documents.courseid != null)) { entity = "Activity"; entityname = documents.activityname; } else if ((documents.activityid == null) && (documents.moduleid != null) && (documents.courseid != null)) { entity = "Module"; entityname = documents.modulename; } else if ((documents.activityid == null) && (documents.moduleid == null) && (documents.courseid != null)) { entity = "Course"; entityname = documents.coursename; } coursedocuments.DocumentName = entity + ": " + entityname; } return(View(cfs)); }