private Course _GetCourse() { var courseId = CookieManager.GetCourseId(); Course course = db.Courses .Include(c => c.Assignments) .Include(c => c.Assignments.Select(a => a.Pages)) .FirstOrDefault(c => c.CourseId == courseId); // TODO: Retrieve course if only one for user return(course); }
protected Course _GetCourse(int courseId = 0) { Course course = null; try { if (courseId == 0) { courseId = CookieManager.GetCourseId(); } if (User.IsInRole(UserRoles.SuperUserRole)) { // a super user can see any course regardless of enrollment course = _db.Courses.FirstOrDefault(c => c.CourseId == courseId); } else { var userId = ApplicationUser.Current.Id; if (courseId > 0) { // get the currently selected course course = _db.Enrollments .Where(e => e.CourseId == courseId) .Where(e => e.UserId == userId) .Select(e => e.Course) .FirstOrDefault(); } else { // if there's only one course for the user, return that course var courses = _db.Enrollments .Where(e => e.UserId == userId) .Select(e => e.Course); if (courses.Count() == 1) { course = courses.First(); } } } } catch (Exception ex) { Elmah.ErrorSignal.FromCurrentContext().Raise(ex); } return(course); }
private bool IsCurrentCourse(int?id) { return(id == CookieManager.GetCourseId()); }