Esempio n. 1
0
        public async Task <JsonResult> GetCourses()
        {
            SetRoles();
            JsonResponse <CourseDataOut> response = new JsonResponse <CourseDataOut>();

            if (this.isAdmin)
            {
                // Show all courses
                List <CourseDataOut> courseDataOuts = new List <CourseDataOut>();
                this.courseRepository.GetAll().ToList <Course>().ForEach(course =>
                {
                    CourseDataOut dataOut = new CourseDataOut
                    {
                        ID                 = course.ID,
                        Name               = course.Name,
                        IsActive           = course.IsActive,
                        FK_INSTRUCTOR_NAME = course.FK_INSTRUCTOR.FirstName + " " + course.FK_INSTRUCTOR.LastName
                    };
                    courseDataOuts.Add(dataOut);
                });
                response.Data = courseDataOuts;
            }
            else if (this.isInstructor)
            {
                var currentUser = await usrMgr.GetUserAsync(HttpContext.User);

                // Lookup the course the instructor is teaching
                this.courseRepository.GetAll().ToList <Course>()
                .ForEach(course =>
                {
                    if (course.FK_INSTRUCTOR.Id == currentUser.Id)
                    {
                        CourseDataOut dataOut = new CourseDataOut
                        {
                            ID       = course.ID,
                            Name     = course.Name,
                            IsActive = course.IsActive,
                            //  FK_INSTRUCTOR_NAME = course.FK_INSTRUCTOR.FirstName + " " + course.FK_INSTRUCTOR.LastName
                        };
                        response.Data.Add(dataOut);
                    }
                });
            }
            else if (this.isStudent)
            {
                List <CourseDataOut> courseDataOuts = new List <CourseDataOut>();
                AppUser currentUser = await usrMgr.GetUserAsync(HttpContext.User);

                // Look at Course Groups and add courses that the student is in
                this.courseGroupRepository.GetAll().ToList <CourseGroup>().ForEach(
                    courseGroup =>
                {
                    if (courseGroup.FK_AppUser == currentUser)
                    {
                        //AppUser instructor = courseGroup.FK_Course.FK_INSTRUCTOR;
                        courseDataOuts.Add(new CourseDataOut
                        {
                            ID       = courseGroup.FK_Course.ID,
                            Name     = courseGroup.FK_Course.Name,
                            IsActive = courseGroup.FK_Course.IsActive,
                            //  FK_INSTRUCTOR_NAME = instructor.FirstName + " " + instructor.LastName
                        });
                    }
                });
                response.Data = courseDataOuts;
            }
            else
            {
                response.Error.Add(new Error()
                {
                    Name = "Courses", Description = "Your in a role that cannot view courses"
                });
            }
            return(Json(response));
        }
Esempio n. 2
0
        public async Task <JsonResult> GetCourse(int courseID = -1)
        {
            SetRoles();
            JsonResponse <Course>        response        = new JsonResponse <Course>();
            JsonResponse <CourseDataOut> responseStudent = new JsonResponse <CourseDataOut>();

            if (this.isAdmin)
            {
                //If they are admin we don't need to check if they are in the course
                response.Data.Add(this.courseRepository.FindByID(courseID));
            }
            else if (isInstructor)
            {
                //Lookup the course
                Course courseLookup = this.courseRepository.FindByID(courseID);
                /// Lets see if that course exists
                if (courseLookup == null)
                {
                    response.Error.Add(new Error()
                    {
                        Description = "The course does not exist", Name = "Course"
                    });
                    return(Json(response));
                }
                //Lets see if the instructor is teacing the course
                if (courseLookup.FK_INSTRUCTOR == await usrMgr.GetUserAsync(HttpContext.User))
                {
                    response.Data.Add(courseLookup);
                }
            }
            else if (this.isStudent)
            {
                //Lets see if the student is in the course]
                AppUser curentUser = await usrMgr.GetUserAsync(HttpContext.User);

                Course course = this.courseGroupRepository.GetAll().ToList <CourseGroup>().Find(
                    // Look for the user
                    x =>
                {
                    if ((x.FK_AppUser == curentUser) &&
                        (x.FK_Course == this.courseRepository.FindByID(courseID)))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                    ).FK_Course;

                AppUser       instructor = course.FK_INSTRUCTOR;
                CourseDataOut dataOut    = new CourseDataOut
                {
                    ID                 = course.ID,
                    Name               = course.Name,
                    IsActive           = course.IsActive,
                    FK_INSTRUCTOR_NAME = instructor.FirstName + " " + instructor.LastName
                };

                if (responseStudent.Data.Count > 0)
                {
                    responseStudent.Data.Add(dataOut);
                    return(Json(responseStudent));
                }
            }
            // If we didn't find the course show error
            if (response.Data.Count == 0)
            {
                response.Error.Add(new Error()
                {
                    Name = "GetCourse", Description = "You have not been added to any courses"
                });
            }
            return(Json(response));
        }