// GET: Course
        public ActionResult Index()
        {
            if (Session["CurrentUser"] != null)
            {
                UserViewModel Current    = (UserViewModel)Session["CurrentUser"];
                PleDBEntities db         = new PleDBEntities();
                var           CourseList = db.Courses.Select(course => new CourseViewModel
                {
                    CourseID             = course.CourseID,
                    CourseCode           = course.CourseCode,
                    CourseDescription    = course.CourseDescription,
                    CourseName           = course.CourseName,
                    DateCreated          = course.DateCreated,
                    IsCurrentlyAvailable = course.IsCurrentlyAvailable,
                    NeedApproval         = course.NeedApproval,
                }).ToList();

                ViewBag.Courses = CourseList;
                return(View(Current));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
        public List <UserViewModel> GetUsers(int CourseID)
        {
            PleDBEntities db    = new PleDBEntities();
            var           Users = db.CourseParticipations.Where(cp => cp.CourseID == CourseID).Select(cp => new UserViewModel
            {
                UserID   = cp.User.UserID,
                FullName = cp.User.FullName,
                Email    = cp.User.Email
            }).ToList();

            return(Users);
        }
        public List <AssignmentViewModel> GetAssignments(int CourseID)
        {
            PleDBEntities db          = new PleDBEntities();
            var           Assignments = db.Assignments.Where(assignment => assignment.CourseID == CourseID).Select(assignment => new AssignmentViewModel
            {
                AssignmentID     = assignment.AssignmentID,
                CourseID         = assignment.CourseID,
                CreatedDate      = assignment.CreatedDate,
                MustDeliveryDate = assignment.MustDeliveryDate,
                Description      = assignment.Description,
                Title            = assignment.Title
            }).ToList();

            return(Assignments);
        }
 public ActionResult SignUp(UserViewModel signupUser)
 {
     if (ModelState.IsValid)
     {
         PleDBEntities db           = new PleDBEntities();
         User          signupUserDb = new User();
         signupUserDb.UserID       = signupUser.UserID;
         signupUserDb.UserPassword = signupUser.UserPassword;
         signupUserDb.FullName     = signupUser.FullName;
         signupUserDb.Email        = signupUser.Email;
         signupUserDb.UserTypeID   = 3;
         db.Users.Add(signupUserDb);
         db.SaveChanges();
     }
     return(RedirectToAction("Login"));
 }
        public CourseViewModel GetCurrentCourse(int CourseID)
        {
            PleDBEntities db            = new PleDBEntities();
            var           CurrentCourse = db.Courses.Where(course => course.CourseID == CourseID).Select(course => new CourseViewModel
            {
                CourseID             = course.CourseID,
                CourseCode           = course.CourseCode,
                CourseDescription    = course.CourseDescription,
                CourseName           = course.CourseName,
                DateCreated          = course.DateCreated,
                IsCurrentlyAvailable = course.IsCurrentlyAvailable,
                NeedApproval         = course.NeedApproval
            }).SingleOrDefault();

            return(CurrentCourse);
        }
        public ActionResult Login(UserViewModel Current)
        {
            PleDBEntities db = new PleDBEntities();

            User user = db.Users.SingleOrDefault(x => x.UserID == Current.UserID && x.UserPassword == Current.UserPassword);

            if (user != null)
            {
                Current.UserID              = user.UserID;
                Current.FullName            = user.FullName;
                Current.UserTypeID          = user.UserTypeID;
                Current.ParticipatedCourses = (from cp in db.CourseParticipations
                                               join course in db.Courses on cp.CourseID equals course.CourseID
                                               where cp.UserID == Current.UserID
                                               select new CourseViewModel
                {
                    CourseID = course.CourseID,
                    CourseCode = course.CourseCode,
                    CourseDescription = course.CourseDescription,
                    CourseName = course.CourseName,
                    DateCreated = course.DateCreated,
                    IsCurrentlyAvailable = course.IsCurrentlyAvailable,
                    NeedApproval = course.NeedApproval
                }).ToList();

                Current.ParticipatedCourses.AddRange((from course in db.Courses
                                                      where course.OwnerID == Current.UserID
                                                      select new CourseViewModel
                {
                    CourseID = course.CourseID,
                    CourseCode = course.CourseCode,
                    CourseDescription = course.CourseDescription,
                    CourseName = course.CourseName,
                    DateCreated = course.DateCreated,
                    IsCurrentlyAvailable = course.IsCurrentlyAvailable,
                    NeedApproval = course.NeedApproval
                }));
                Session["CurrentUser"] = Current;
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ViewBag.Message = "Failed to login.";
                return(View());
            }
        }
        public List <GradeViewModel> GetCourseGrades(int CourseID)
        {
            PleDBEntities db = new PleDBEntities();

            var Grades = from grade in db.Grades
                         where grade.Assignment.CourseID == CourseID
                         orderby grade.AssignmentID
                         select new GradeViewModel
            {
                AssignmentID = grade.AssignmentID,
                GradeID      = grade.GradeID,
                Points       = grade.Points,
                UserID       = grade.UserID
            };

            return(Grades.ToList());
        }
        public List <CourseViewModel> GetCourses(string UserID)
        {
            PleDBEntities db      = new PleDBEntities();
            var           Courses = from cp in db.CourseParticipations
                                    join course in db.Courses on cp.CourseID equals course.CourseID
                                    where cp.UserID == UserID
                                    select new CourseViewModel
            {
                CourseID             = course.CourseID,
                CourseCode           = course.CourseCode,
                CourseDescription    = course.CourseDescription,
                CourseName           = course.CourseName,
                DateCreated          = course.DateCreated,
                IsCurrentlyAvailable = course.IsCurrentlyAvailable,
                NeedApproval         = course.NeedApproval
            };

            return(Courses.ToList());
        }
 private ActionResult CourseDetail(int CourseID)
 {
     if (Session["CurrentUser"] != null)
     {
         UserViewModel Current       = (UserViewModel)Session["CurrentUser"];
         PleDBEntities db            = new PleDBEntities();
         var           CurrentCourse = db.Courses.Where(course => course.CourseID == CourseID).Select(course => new CourseViewModel
         {
             CourseID             = course.CourseID,
             CourseCode           = course.CourseCode,
             CourseDescription    = course.CourseDescription,
             CourseName           = course.CourseName,
             DateCreated          = course.DateCreated,
             IsCurrentlyAvailable = course.IsCurrentlyAvailable,
             NeedApproval         = course.NeedApproval
         }).SingleOrDefault();
         ViewBag.CurrentCourse = CurrentCourse;
         return(View("Detail", Current));
     }
     else
     {
         return(RedirectToAction("Login", "Account"));
     }
 }