예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 private bool IsCurrentCourse(int?id)
 {
     return(id == CookieManager.GetCourseId());
 }