Пример #1
0
        /// <summary>
        /// Instructor grade assignment individually
        /// </summary>
        /// <param name="assignmentId"></param>
        /// <returns></returns>
        public ActionResult GradeAssignment(int assignmentGradeId)
        {
            gds = new LMS_GRINDEntities1();
            //Populate the page with individual assignment information
            StudentAssignment stuAssignment = gds.StudentAssignments.Where(x => x.assignment_grade_id == assignmentGradeId).FirstOrDefault();
            int        student_id           = gds.StudentAssignments.Where(x => x.assignment_grade_id == assignmentGradeId).Select(x => x.student_id).FirstOrDefault();
            int        assignmentId         = gds.StudentAssignments.Where(x => x.assignment_grade_id == assignmentGradeId).Select(x => x.assignment_id).FirstOrDefault();
            Assignment thisAssignment       = gds.Assignments.Where(x => x.assignment_id == assignmentId).FirstOrDefault();
            String     assignmentName       = gds.Assignments.Where(x => x.assignment_id == assignmentId).Select(x => x.assignment_name).FirstOrDefault();
            String     firstName            = gds.ulUsers.Where(x => x.ulUser_id == student_id).Select(x => x.first_name).FirstOrDefault();
            String     lastName             = gds.ulUsers.Where(x => x.ulUser_id == student_id).Select(x => x.last_name).FirstOrDefault();
            int        courseId             = gds.StudentCourses.Where(x => x.student_id == student_id).Select(x => x.course_id).FirstOrDefault();
            int        ic_id = gds.InstructorCourses.Where(x => x.course_id == courseId).Select(x => x.instructor_course_id).FirstOrDefault();

            AssignmentList.GenerateThisStudentsSubmissionsForCourse(student_id, ic_id);
            ViewBag.AssignmentName    = assignmentName;
            ViewBag.StudentName       = firstName + " " + lastName;
            ViewBag.StudentId         = stuAssignment.student_id;
            ViewBag.SubmissionDate    = stuAssignment.submission_date;
            ViewBag.TextSubmission    = stuAssignment.text_submission;
            ViewBag.FileSubmission    = stuAssignment.file_submission;
            ViewBag.DueDate           = thisAssignment.due_date;
            ViewBag.MaxPoints         = thisAssignment.max_points;
            ViewBag.AssignmentGradeId = stuAssignment.assignment_grade_id;
            ViewBag.AssignmentId      = assignmentId;
            ViewBag.CurrentGrade      = stuAssignment.grade;
            ViewBag.Feedback          = stuAssignment.instructor_feedback;
            return(View("GradeAssignmentView"));
        }
Пример #2
0
        public static void GenerateInstructorToDoList()
        {
            InstructorToDoList = new List <ToDo>();
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();
            // Get a list of top 5 assignments assigned to student
            // sorted by due date
            var query = (from a in gds.Assignments
                         join ic in gds.InstructorCourses on a.instructor_course_id equals ic.instructor_course_id
                         join c in gds.Courses on ic.course_id equals c.course_id
                         where ic.instructor_id == Name.user_id
                         where a.due_date > DateTime.Now
                         orderby a.due_date ascending
                         select new
            {
                CourseId = c.course_id,
                CourseNum = c.course_num,
                AssignmentName = a.assignment_name,
                DueDate = a.due_date,
                AssignmentID = a.assignment_id
            }).Take(5).ToList();

            int i = 0;

            foreach (var item in query)
            {
                InstructorToDoList.Add(new ToDo());
                InstructorToDoList[i].AssignmentName = item.AssignmentName;
                InstructorToDoList[i].CourseNum      = item.CourseNum;
                InstructorToDoList[i].DueDate        = item.DueDate;
                InstructorToDoList[i].AssignmentID   = item.AssignmentID;
                //LetterGradeList.GenerateCourseLetterGrades(item.CourseId);
                i++;
            }
        }
        public ActionResult Unregister(FormCollection form) // TODO: Validation - verify user is enrolled in class before removing
        {
            gds = new LMS_GRINDEntities1();
            List <string> displayList  = GetDisplayList();
            var           courseList   = gds.Courses.ToList();
            string        selectedItem = form["ddCourses"].ToString(); // Item selected from dropdown
            int           index        = 0;

            try
            {
                // determine index of selected item
                index = GetSelectedIndex(displayList, selectedItem);

                // create a list of StudentCourses sc
                var sc = gds.StudentCourses.ToList();

                // query sc for the course to be unregistered and store in id
                var course = sc.First(x => x.student_id == Name.user_id && x.course_id == courseList[index].course_id);

                gds.StudentCourses.Remove(course);

                //Save the changes
                gds.SaveChanges();

                // update list and return to StudentView
                CourseCardList.GenerateStudentCourseList();
                ToDoList.GenerateStudentToDoList();
                return(RedirectToAction("ReturnToView", "UserAccount", null));
            }
            catch
            {
                ViewBag.Message = "Could not unregister from course because no registration exists";
                return(ViewRegistration(""));
            }
        }
        public ActionResult AddRegistration(FormCollection form)
        {
            StudentCours  sc          = new StudentCours();
            List <string> displayList = GetDisplayList();

            gds = new LMS_GRINDEntities1();
            string selectedItem = form["ddCourses"].ToString();
            var    courseList   = gds.Courses.ToList();
            int    index        = GetSelectedIndex(displayList, selectedItem);

            sc.course_id  = courseList[index].course_id;
            sc.student_id = Name.user_id;

            // check database for specified course id and student id
            var ret = (from s in gds.StudentCourses
                       where s.student_id == Name.user_id
                       where s.course_id == sc.course_id
                       select s).Count();

            if (ret > 0)
            {
                ViewBag.Message = "Could not register for course. You are already registered.";
                return(ViewRegistration(""));
            }
            else
            {
                gds.StudentCourses.Add(sc);
                gds.SaveChanges();
                CourseCardList.GenerateStudentCourseList();
                ToDoList.GenerateStudentToDoList();

                return(RedirectToAction("ReturnToView", "UserAccount", null));
            }
        }
        /// <summary>
        /// Returns a list of strings used for registration dropdown
        /// </summary>
        /// <returns></returns>
        public List <string> GetDisplayList()
        {
            List <string> displayList = new List <string>();

            gds = new LMS_GRINDEntities1();
            var      courseList = gds.Courses.ToList();
            string   sStart;
            string   sEnd;
            DateTime dtStartTime;
            DateTime dtEndTime;

            foreach (var course in courseList)
            {
                if (course.course_name != null)
                {
                    // convert time format
                    dtStartTime = DateTime.Today.Add((TimeSpan)course.start_time);
                    sStart      = dtStartTime.ToString("hh:mm tt");
                    dtEndTime   = DateTime.Today.Add((TimeSpan)course.end_time);
                    sEnd        = dtEndTime.ToString("hh:mm tt");

                    displayList.Add(course.course_num + " " + course.course_name + " " + sStart + " - " + sEnd + " " + course.days_of_week);
                }
            }

            return(displayList);
        }
Пример #6
0
        public ActionResult PopUpItem(DateTime due_date)
        {
            gds = new LMS_GRINDEntities1();

            return(PartialView("Details", gds.Assignments.Find(due_date))); //Assignments might throw an error //it does on my editor
            //return PartialView("Details", entities.Customers.Find(customerId));
        }
Пример #7
0
        public ActionResult SubmitGradeAssignment(int assignmentGradeId, int grade, string instructorFeedback)
        {
            gds = new LMS_GRINDEntities1();
            //Save grade to database
            StudentAssignment stuAssignment = gds.StudentAssignments.Where(x => x.assignment_grade_id == assignmentGradeId).FirstOrDefault();
            int?id    = gds.StudentAssignments.Where(x => x.assignment_grade_id == assignmentGradeId).Select(x => x.assignment_id).FirstOrDefault();
            int ic_id = gds.Assignments.Where(x => x.assignment_id == id).Select(x => x.instructor_course_id).FirstOrDefault();

            try
            {
                stuAssignment.grade = grade;
                stuAssignment.instructor_feedback = instructorFeedback;
                gds.SaveChanges();
                AssignmentList.GenerateThisStudentsSubmissionsForCourse(stuAssignment.student_id, ic_id);
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        System.Console.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
            catch
            {
                return(View("GradeAssignmentView"));
            }
            return(RedirectToAction("InstructorGrading", new { assignmentId = id }));
        }
        /// <summary>
        /// Display course details for student
        /// </summary>
        /// <param name="id"></param>
        /// <returns>Display details of the selected course</returns>
        public ActionResult StudentCourseDetail(int id)
        {
            gds = new LMS_GRINDEntities1();
            Cours      course              = gds.Courses.Where(x => x.course_id == id).FirstOrDefault();
            int        ic_id               = gds.InstructorCourses.Where(x => x.course_id == id).Select(x => x.instructor_course_id).FirstOrDefault();
            Department department          = gds.Departments.Where(x => x.dept_id == course.dept_id).FirstOrDefault();
            int        instructorId        = gds.InstructorCourses.Where(x => x.instructor_course_id == ic_id).Select(x => x.instructor_id).FirstOrDefault();
            String     instructorFirstName = gds.ulUsers.Where(x => x.ulUser_id == instructorId).Select(x => x.first_name).FirstOrDefault();
            String     instructorLastName  = gds.ulUsers.Where(x => x.ulUser_id == instructorId).Select(x => x.last_name).FirstOrDefault();

            CourseCardList.GenerateStudentCourseList();
            AssignmentList.GenerateStudentAssignmentList(id);
            AssignmentList.GenerateThisStudentsSubmissions(Name.user_id);
            AssignmentList.GenerateThisStudentsSubmissionsForCourse(Name.user_id, ic_id);

            StudentCours studentCours = gds.StudentCourses.Where(x => (x.course_id == course.course_id) && (x.student_id == Name.user_id)).FirstOrDefault();

            // Calculate overall points
            int    maxPoints   = 0;
            int    points      = 0;
            double?gradePoints = 0;

            if (AssignmentList.StudentAssignments.Any())
            {
                foreach (var assignment in AssignmentList.StudentAssignments)
                {
                    AssignmentList.GenerateThisStudentsSubmissionForAssignment(assignment.AssignmentId);
                    if (AssignmentList.StudentAssignmentSubmission.isGraded)
                    {
                        points    += (int)AssignmentList.StudentAssignmentSubmission.Grade;
                        maxPoints += (int)assignment.MaxPoints;
                    }
                }

                ViewBag.points    = points;
                ViewBag.maxPoints = maxPoints;
                // Get letter grade
                gradePoints = ((double)points / maxPoints) * 100;
                // Display 2 decimal places
                gradePoints = Math.Truncate(100 * (double)gradePoints) / 100;
                if (gradePoints >= 0)
                {
                    ViewBag.gradePercentage = gradePoints + "%";  // Display percentage
                }
                else
                {
                    ViewBag.gradePercentage = " ";
                }
            }

            AssignmentList.GenerateThisStudentsSubmissionsForCourse(Name.user_id, ic_id);
            ViewBag.letterGrade      = studentCours.letter_grade; // Display letter grade
            ViewBag.selectedCourse   = course;
            ViewBag.courseDepartment = department;
            ViewBag.InstructorName   = instructorFirstName + " " + instructorLastName;

            return(View("StudentCourseDetailView"));
        }
        public ActionResult SubmitAssignment(string text_submission, HttpPostedFileBase assignment_file)
        {
            gds = new LMS_GRINDEntities1();
            StudentAssignment sa = new StudentAssignment();

            if (AssignmentList.AssignmentItem.SubmissionType == "File")
            {
                if (assignment_file != null)
                {
                    var instructor = (from ic in gds.InstructorCourses
                                      where ic.instructor_course_id == AssignmentList.AssignmentItem.InstructorCourseId
                                      select ic).First();

                    var instructor_l_name = (from i in gds.ulUsers
                                             where i.ulUser_id == instructor.instructor_id
                                             select i).First();

                    string course_directory  = instructor_l_name.last_name + "_" + AssignmentList.AssignmentItem.CourseNum;
                    string student_directory = Name.first_name + Name.last_name;
                    string file_name         = Path.GetFileNameWithoutExtension(assignment_file.FileName) +
                                               DateTime.Now.ToString("yymmssfff") +
                                               Path.GetExtension(assignment_file.FileName);

                    // Set file path to the course directory within the Assignment Submissions folder
                    string file_path = Path.Combine(Server.MapPath("~/AssignmentSubmissions/"), file_name);

                    sa.file_submission = "~/AssignmentSubmissions/" + file_name;
                    sa.assignment_id   = AssignmentList.AssignmentItem.AssignmentId;
                    sa.student_id      = Name.user_id;
                    sa.submission_date = DateTime.Now;
                    assignment_file.SaveAs(file_path);

                    gds.StudentAssignments.Add(sa);
                    gds.SaveChanges();

                    ViewBag.IsSubmitted = true;
                }
                else
                {
                    ViewBag.IsSubmitted = false;
                }
            }
            else // TEXT SUBMISSION
            {
                sa.text_submission = text_submission;
                sa.assignment_id   = AssignmentList.AssignmentItem.AssignmentId;
                sa.student_id      = Name.user_id;
                sa.submission_date = DateTime.Now;

                gds.StudentAssignments.Add(sa);
                gds.SaveChanges();
                ViewBag.IsSubmitted = true;
            }

            ToDoList.GenerateStudentToDoList();
            return(View("StudentAssignmentView"));
        }
Пример #10
0
        public static void GenerateInstructorCourseList()
        {
            CourseList = new List <CourseCard>();
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();
            string             sStart;
            string             sEnd;
            DateTime           dtStartTime;
            DateTime           dtEndTime;
            int i = 0;

            //Select all course IDs associated with logged in user
            var query = (from c in gds.Courses
                         join ic in gds.InstructorCourses
                         on c.course_id equals ic.course_id
                         join u in gds.ulUsers
                         on ic.instructor_id equals u.ulUser_id
                         join iid in gds.InstructorCourses
                         on c.course_id equals iid.course_id
                         where iid.instructor_id == Name.user_id
                         select new
            {
                CourseId = c.course_id,
                CourseName = c.course_name,
                CourseNum = c.course_num,
                InstructorFirstName = u.first_name,
                InstructorLastName = u.last_name,
                Building = c.building,
                RoomNumber = c.room_no,
                StartTime = c.start_time,
                EndTime = c.end_time,
                Days = c.days_of_week
            }).ToList();

            foreach (var item in query)
            {
                // convert time format
                dtStartTime = DateTime.Today.Add((TimeSpan)item.StartTime);
                sStart      = dtStartTime.ToString("hh:mm tt");
                dtEndTime   = DateTime.Today.Add((TimeSpan)item.EndTime);
                sEnd        = dtEndTime.ToString("hh:mm tt");

                CourseList.Add(new CourseCard());
                CourseList[i].CourseId            = item.CourseId;
                CourseList[i].CourseName          = item.CourseName;
                CourseList[i].CourseNum           = item.CourseNum;
                CourseList[i].InstructorFirstName = item.InstructorFirstName;
                CourseList[i].InstructorLastName  = item.InstructorLastName;
                CourseList[i].Building            = item.Building;
                CourseList[i].RoomNumber          = (int)item.RoomNumber;
                CourseList[i].StartTime           = sStart;
                CourseList[i].EndTime             = sEnd;
                CourseList[i].Days = item.Days;

                i++;
            }
        }
        public ActionResult CourseList()
        {
            LMS_GRINDEntities1 gds   = new LMS_GRINDEntities1();
            var        getCourseList = gds.Courses.ToList();
            SelectList list          = new SelectList(getCourseList, "course_name", "days_of_week");

            ViewBag.courselistname = list;

            return(View());
        }
Пример #12
0
        public ActionResult Verify(User u)
        {
            //Encrypt password functionality
            byte[] data = System.Text.Encoding.ASCII.GetBytes(u.Password);
            data = new System.Security.Cryptography.SHA256Managed().ComputeHash(data);
            String hash = System.Text.Encoding.ASCII.GetString(data);

            gds = new LMS_GRINDEntities1();
            var query = gds.ulUsers.Where(x => x.email_address == u.Email && x.user_password == hash);

            if (query.Any())
            {
                foreach (ulUser user in query)
                {
                    // Set static name variables
                    Name.user_id       = user.ulUser_id;
                    Name.first_name    = user.first_name;
                    Name.last_name     = user.last_name;
                    Name.role          = user.role;
                    Name.email         = user.email_address;
                    Name.birthdate     = user.birthdate;
                    Name.streetAddress = user.street_address;
                    Name.phoneNum      = user.phone_num;
                    Name.bio           = user.bio;
                    Name.link1         = user.link1;
                    Name.link2         = user.link2;
                    Name.link3         = user.link3;
                    Name.profileImage  = user.profileImage;
                    Name.linkTitle1    = user.linkTitle1;
                    Name.linkTitle2    = user.linkTitle2;
                    Name.linkTitle3    = user.linkTitle3;
                }

                if (Name.role == "Student")
                {
                    ViewBag.ErrorMessage = "";
                    ToDoList.GenerateStudentToDoList();
                    CourseCardList.GenerateStudentCourseList();
                    return(View("StudentView"));
                }
                else
                {
                    ViewBag.ErrorMessage = "";
                    ToDoList.GenerateInstructorToDoList();
                    CourseCardList.GenerateInstructorCourseList();
                    return(View("InstructorView"));
                }
            }
            else
            {
                ViewBag.ErrorMessage = "Incorrect user credentials or account not yet created";
                return(View("Login"));
            }
        }
Пример #13
0
        /// <summary>
        /// Returns an string of numerical days of the week
        /// Ex: MTW --> "[1,3,5]"
        /// for a given course
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public string GetDaysOfWeek(int id)
        {
            string s;

            using (LMS_GRINDEntities1 gds = new LMS_GRINDEntities1())
            {
                var d = (from c in gds.Courses
                         where c.course_id == id
                         select new { days = c.days_of_week }).First();

                s = "[";
                int i = 0;
                foreach (char c in d.days)
                {
                    switch (c)
                    {
                    case 'M':
                        s += "1";
                        break;

                    case 'T':
                        s += "2";
                        break;

                    case 'W':
                        s += "3";
                        break;

                    case 'R':
                        s += "4";
                        break;

                    case 'F':
                        s += "5";
                        break;

                    default:
                        break;
                    }

                    i++;
                    // add comma, else add closing bracket
                    if (!(s.Length - 2 == d.days.Length))
                    {
                        s += ",";
                    }
                }

                s += "]";
            }

            return(s);
        }
Пример #14
0
        public static void GenerateStudentAssignmentGradePerformance(int assignmentId)
        {
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();

            LetterGradeItems = new List <LetterGradeItem>();
            List <int> PointList = new List <int>();

            HighScore = new int();
            LowScore  = new int();

            var query = (from a in gds.Assignments
                         join sa in gds.StudentAssignments on a.assignment_id equals sa.assignment_id
                         where a.assignment_id == assignmentId
                         select new
            {
                Grade = sa.grade
            }).ToList();

            foreach (var item in query)
            {
                if (item.Grade != null)
                {
                    PointList.Add((int)item.Grade);
                }
                else
                {
                    return;
                }
            }

            //Calculate chart values
            if (query.Count() == 0)
            {
                HighScore = null;
                LowScore  = null;
                return;
            }

            HighScore = PointList[0];
            LowScore  = PointList[0];
            for (int j = 0; j < PointList.Count; j++)
            {
                if (PointList[j] > HighScore)
                {
                    HighScore = PointList[j];
                }
                else if (PointList[j] < LowScore)
                {
                    LowScore = PointList[j];
                }
            }
        }
Пример #15
0
        public ActionResult InstructorAssignment(int id)
        {
            gds = new LMS_GRINDEntities1();
            var courseNum  = gds.Courses.Where(x => x.course_id == id).Select(x => x.course_num).FirstOrDefault();
            var courseName = gds.Courses.Where(x => x.course_id == id).Select(x => x.course_name).FirstOrDefault();

            CourseCardList.GenerateInstructorCourseList();
            AssignmentList.GenerateInstructorAssignmentList(id);
            @ViewBag.CourseId   = id;
            @ViewBag.CourseNum  = courseNum;
            @ViewBag.CourseName = courseName;
            return(View("InstructorAssignmentView"));
        }
Пример #16
0
        /// <summary>
        /// Returns a json result of assignment events
        /// </summary>
        /// <returns></returns>
        public JsonResult GetAssignmentEvents()
        {
            using (LMS_GRINDEntities1 gds = new LMS_GRINDEntities1())
            {
                JsonResult jResult;

                if (Name.role == "Instructor")
                {
                    var events = (from a in gds.Assignments
                                  join ic in gds.InstructorCourses on a.instructor_course_id equals ic.instructor_course_id
                                  join c in gds.Courses on ic.course_id equals c.course_id
                                  where ic.instructor_id == Name.user_id
                                  select new
                    {
                        title = a.assignment_name + " - " + c.course_num,
                        description = c.course_num,
                        start = a.due_date,
                        assign_id = a.assignment_id,
                        url = "Grading/GoToInstructorGrading/" + a.assignment_id.ToString()
                    }).ToList();

                    jResult = new JsonResult {
                        Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                    };
                }
                else // - NAME.ROLE == STUDENT
                {
                    var events = (from a in gds.Assignments
                                  join ic in gds.InstructorCourses on a.instructor_course_id equals ic.instructor_course_id
                                  join sc in gds.StudentCourses on ic.course_id equals sc.course_id
                                  join c in gds.Courses on ic.course_id equals c.course_id
                                  where sc.student_id == Name.user_id
                                  select new
                    {
                        title = a.assignment_name + " - " + c.course_num,
                        description = c.course_num,
                        start = a.due_date,
                        assign_id = a.assignment_id,
                        url = "assignment/StudentAssignment/" + a.assignment_id.ToString()
                    }).ToList();

                    jResult = new JsonResult {
                        Data = events, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                    };
                }

                return(jResult);
            }
        }
Пример #17
0
        //This method returns all of the submissions by a particular student with the parameter id
        //Generates a list of StudentAssignmentSubmissionItems
        public static void GenerateThisStudentsSubmissions(int?studentId)
        {
            ThisStudentsSubmissions = new List <StudentAssignmentSubmissionItem>();
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();
            // IndividualStudentTotalPoints = new int();
            //IndividualStudentMaxPoints = new int();

            var query = (from a in gds.StudentAssignments
                         join assign in gds.Assignments on a.assignment_id equals assign.assignment_id
                         where a.student_id == studentId
                         select new
            {
                AssignmentGradeId = a.assignment_grade_id,
                AssignmentId = a.assignment_id,
                StudentId = a.student_id,
                Grade = a.grade,
                InstructorFeedback = a.instructor_feedback,
                SubmissionDate = a.submission_date,
                TextSubmission = a.text_submission,
                FileSubmission = a.file_submission,
                MaxPoints = assign.max_points
            }).ToList();

            int i = 0;

            foreach (var item in query)
            {
                ThisStudentsSubmissions.Add(new StudentAssignmentSubmissionItem());
                ThisStudentsSubmissions[i].AssignmentGradeId  = item.AssignmentGradeId;
                ThisStudentsSubmissions[i].AssignmentId       = item.AssignmentId;
                ThisStudentsSubmissions[i].StudentId          = item.StudentId;
                ThisStudentsSubmissions[i].Grade              = item.Grade;
                ThisStudentsSubmissions[i].MaxPoints          = (int)item.MaxPoints;
                ThisStudentsSubmissions[i].SubmissionDate     = (DateTime)item.SubmissionDate;
                ThisStudentsSubmissions[i].TextSubmission     = item.TextSubmission;
                ThisStudentsSubmissions[i].FileSubmission     = item.FileSubmission;
                ThisStudentsSubmissions[i].InstructorFeedback = item.InstructorFeedback;

                if (item.Grade != null)
                {
                    ThisStudentsSubmissions[i].isGraded = true;
                }
                else
                {
                    ThisStudentsSubmissions[i].isGraded = false;
                }
                i++;
            }
        }
        public ActionResult InstructorCourseInformation(int id)
        {
            gds = new LMS_GRINDEntities1();
            Cours      course              = gds.Courses.Where(x => x.course_id == id).FirstOrDefault();
            int        ic_id               = gds.InstructorCourses.Where(x => x.course_id == id).Select(x => x.instructor_course_id).FirstOrDefault();
            Department department          = gds.Departments.Where(x => x.dept_id == course.dept_id).FirstOrDefault();
            int        instructorId        = gds.InstructorCourses.Where(x => x.instructor_course_id == ic_id).Select(x => x.instructor_id).FirstOrDefault();
            String     instructorFirstName = gds.ulUsers.Where(x => x.ulUser_id == instructorId).Select(x => x.first_name).FirstOrDefault();
            String     instructorLastName  = gds.ulUsers.Where(x => x.ulUser_id == instructorId).Select(x => x.last_name).FirstOrDefault();

            ViewBag.selectedCourse   = course;
            ViewBag.courseDepartment = department;
            ViewBag.InstructorName   = instructorFirstName + " " + instructorLastName;
            return(View("InstructorCourseInformationView"));
        }
Пример #19
0
        /// <summary>
        /// Display course List for dropdown menu for instructor add assignment
        /// </summary>
        /// <returns></returns>
        public List <Cours> GetCourseList()
        {
            List <Cours> displayCourseList = new List <Cours>();

            gds = new LMS_GRINDEntities1();
            List <InstructorCours> instructorCourses = gds.InstructorCourses.Where(x => x.instructor_id == Name.user_id).ToList();

            foreach (var course in instructorCourses)
            {
                Cours insCourse = gds.Courses.Where(x => x.course_id == course.course_id).FirstOrDefault();
                displayCourseList.Add(insCourse);
            }

            return(displayCourseList);
        }
        public ActionResult InstructorCview(string search)
        {
            gds = new LMS_GRINDEntities1();
            var departments = (from d in gds.Departments    // select all departments
                               select d);

            if (!String.IsNullOrEmpty(search))
            {
                departments = departments.Where(x => x.dept_name.Contains(search)); // filter based on search
            }

            CourseCardList.GenerateInstructorCourseList();

            return(View("InstructorCview", departments.ToList().OrderBy(x => x.dept_name)));
        }
Пример #21
0
        public void InstructorCanCreateCourseTest()
        {
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();

            // Preparation
            // Start with the known instructor id then find out how many courses this instructor is teaching right now
            var courses = (from x in gds.Courses
                           join ic in gds.InstructorCourses on x.course_id equals ic.course_id
                           where ic.instructor_id == 1012
                           select x).ToList();

            // Call that course number N
            int N = courses.Count();

            // Create a new course for this instructor using the application code from test
            Cours c = new Cours();

            c.course_num   = "MATH 1010";
            c.course_name  = "Intermediate Algebra";
            c.course_desc  = "Prepare to be enlightened";
            c.building     = "Math Hub";
            c.days_of_week = "MTWF";
            c.dept_id      = 5;
            c.start_time   = new TimeSpan(9, 30, 0);
            c.end_time     = new TimeSpan(10, 20, 0);
            c.num_credits  = 3;
            c.max_capacity = 30;
            c.room_no      = 112;

            CoursesAndRegistrationController controller = new CoursesAndRegistrationController();

            controller.SaveCourse(c.course_num, c.course_name, c.course_desc, (int)c.num_credits,
                                  (int)c.max_capacity, c.building, (int)c.room_no, c.dept_id, "M", "T", "W", "", "F",
                                  (TimeSpan)c.start_time, (TimeSpan)c.end_time);

            // Again, Find out how many courses this instructor is teaching now
            var courses2 = (from x in gds.Courses
                            join ic in gds.InstructorCourses on x.course_id equals ic.course_id
                            where ic.instructor_id == 1012
                            select x).ToList();

            int N2       = courses2.Count();
            int expected = N + 1;

            // Expecting N + 1
            // (Started with N courses and added 1 course)
            Assert.AreEqual(N2, expected);
        }
        /// <summary>
        /// Generates a list of courses and filters based on
        /// search criteria
        /// </summary>
        /// <param name="search"></param>
        /// <returns>RegistrationView and a list of courses</returns>
        public ActionResult ViewRegistration(string search)
        {
            // for dropdown list on Registration View
            gds = new LMS_GRINDEntities1();

            var courses = (from c in gds.Courses
                           select c);

            if (!String.IsNullOrEmpty(search))
            {
                courses = courses.Where(x => x.course_num.Contains(search) ||
                                        x.course_name.Contains(search));
            }

            return(View("RegistrationView", courses.ToList()));
        }
        /// <summary>
        /// HTML controller method
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult EditCourse(int id)
        {
            gds = new LMS_GRINDEntities1();
            Cours  course     = gds.Courses.Where(x => x.course_id == id).FirstOrDefault();
            int    department = gds.Departments.Where(x => x.dept_id == course.dept_id).Select(x => x.dept_id).FirstOrDefault();
            string daysOfWeek = gds.Courses.Where(x => x.course_id == id).Select(x => x.days_of_week).FirstOrDefault();

            ViewBag.selectedCourse = course;
            bool[] selectedDept = new bool[9];

            for (int i = 0; i < 9; i++)
            {
                if (i == department)
                {
                    selectedDept[i] = true;
                }
                else
                {
                    selectedDept[i] = false;
                }
            }

            ViewBag.deptArray = selectedDept;

            if (daysOfWeek.Contains("M"))
            {
                ViewBag.monday = true;
            }
            if (daysOfWeek.Contains("T"))
            {
                ViewBag.tuesday = true;
            }
            if (daysOfWeek.Contains("W"))
            {
                ViewBag.wednesday = true;
            }
            if (daysOfWeek.Contains("R"))
            {
                ViewBag.thursday = true;
            }
            if (daysOfWeek.Contains("F"))
            {
                ViewBag.friday = true;
            }
            return(View("EditCourseView"));
        }
        public ActionResult UpdateCourse(int id, string courseNum, string courseName, string courseDesc,
                                         int courseCredits, int maxCapacity, string courseLocation,
                                         int courseRoom, int departments, string monday, string tuesday, string wednesday,
                                         string thursday, string friday, TimeSpan startTime, TimeSpan endTime)
        {
            gds = new LMS_GRINDEntities1();
            Cours course = gds.Courses.Where(x => x.course_id == id).FirstOrDefault();

            try
            {
                course.course_name  = courseName;
                course.course_desc  = courseDesc;
                course.course_num   = courseNum;
                course.max_capacity = maxCapacity;
                course.dept_id      = departments;
                course.num_credits  = courseCredits;
                course.days_of_week = monday + tuesday + wednesday + thursday + friday;
                course.start_time   = startTime;
                course.end_time     = endTime;
                course.building     = courseLocation;
                course.room_no      = courseRoom;

                ViewBag.selectedCourse = course;
                Department department = gds.Departments.Where(x => x.dept_id == course.dept_id).FirstOrDefault();
                ViewBag.courseDepartment = department;

                gds.SaveChanges();
                CourseCardList.GenerateInstructorCourseList();
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        System.Console.WriteLine("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
            catch
            {
                return(View("EditCourseView"));
            }
            return(View("InstructorCourseInformationView"));
            //return View("InstructorCview");
        }
Пример #25
0
        public ActionResult SaveAssignment(string assignmentName,
                                           string assignmentDesc, int maxPoints, DateTime dueDate, string assignmentType, string submissionType)
        {
            var courseId   = int.Parse(Request.Form["CourseId"]);
            var courseNum  = Request.Form["CourseNum"];
            var courseName = Request.Form["CourseName"];


            gds = new LMS_GRINDEntities1();
            Assignment newAssignment = new Assignment();

            var query = from course in gds.Courses
                        join insCourse in gds.InstructorCourses
                        on course.course_id equals insCourse.course_id
                        where course.course_id == courseId
                        select new
            {
                instructorCourseID = insCourse.instructor_course_id
            };

            foreach (var insCourse in query)
            {
                newAssignment.instructor_course_id = insCourse.instructorCourseID;
            }

            newAssignment.assignment_name = assignmentName;
            newAssignment.assignment_desc = assignmentDesc;
            newAssignment.max_points      = maxPoints;
            newAssignment.due_date        = dueDate;
            newAssignment.assignment_type = assignmentType;
            newAssignment.submission_type = submissionType;
            gds.Assignments.Add(newAssignment);
            gds.SaveChanges();


            AssignmentList.GenerateInstructorAssignmentList(courseId);
            CourseCardList.GenerateInstructorCourseList();

            @ViewBag.CourseNum  = courseNum;
            @ViewBag.CourseName = courseName;
            @ViewBag.CourseId   = courseId;

            ToDoList.GenerateInstructorToDoList();

            return(RedirectToAction("InstructorCourseDetail", "CoursesAndRegistration", new { id = courseId }));
        }
Пример #26
0
        public ActionResult AddAssignment(int id)
        {
            List <Cours> displayCourseList = GetCourseList();   // Display instructor's course list

            gds = new LMS_GRINDEntities1();
            var courseNum  = gds.Courses.Where(x => x.course_id == id).Select(x => x.course_num).FirstOrDefault();
            var courseName = gds.Courses.Where(x => x.course_id == id).Select(x => x.course_name).FirstOrDefault();
            var courseId   = gds.Courses.Where(x => x.course_id == id).Select(x => x.course_id).FirstOrDefault();

            @ViewBag.courseList = displayCourseList;
            @ViewBag.CourseNum  = courseNum;
            @ViewBag.CourseName = courseName;
            @ViewBag.CourseId   = courseId;
            ToDoList.GenerateInstructorToDoList();

            return(View("AddAssignmentView"));
        }
Пример #27
0
        /// <summary>
        /// Returns a json result of course meeting events
        /// </summary>
        /// <returns></returns>
        public JsonResult GetMeetingEvents()
        {
            using (LMS_GRINDEntities1 gds = new LMS_GRINDEntities1())
            {
                JsonResult     jResult;
                List <Meeting> m;

                if (Name.role == "Instructor")
                {
                    m = new List <Meeting>();
                    int i = 0;
                    foreach (var e in CourseCardList.CourseList)
                    {
                        // copy event into a list of Meeting objects
                        m.Add(new Meeting());
                        m[i].days  = GetDaysOfWeek(e.CourseId);
                        m[i].title = e.StartTime + " " + e.CourseNum + " - " + e.Building + ", Room: " + e.RoomNumber;
                        m[i].start = e.Start;
                        m[i].end   = e.End;
                        i++;
                    }
                }
                else // - NAME.ROLE == STUDENT
                {
                    m = new List <Meeting>();
                    int i = 0;
                    foreach (var e in CourseCardList.CourseList)
                    {
                        // copy event into a list of Meeting objects
                        m.Add(new Meeting());
                        m[i].days  = GetDaysOfWeek(e.CourseId);
                        m[i].title = e.StartTime + " " + e.CourseNum + " - " + e.Building + ", Room: " + e.RoomNumber;
                        m[i].start = e.Start;
                        m[i].end   = e.End;
                        i++;
                    }
                }

                jResult = new JsonResult {
                    Data = m, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
                return(jResult);
            }
        }
Пример #28
0
        //This method generates the information of a specific assignment with the parameter assignmentId
        //Generates a list assignmentItem
        /// <summary>
        /// Gets a list Assgnment Item by assingment_id
        /// </summary>
        /// <param name="id"></param>
        public static void GenerateAssignmentItem(int?AssignmentId)
        {
            AssignmentItemList = new List <AssignmentItem>();
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();

            var query = (from a in gds.Assignments
                         join ic in gds.InstructorCourses on a.instructor_course_id equals ic.instructor_course_id
                         join sc in gds.StudentCourses on ic.course_id equals sc.course_id
                         join c in gds.Courses on ic.course_id equals c.course_id
                         where a.assignment_id == AssignmentId
                         select new
            {
                AssignmentId = a.assignment_id,
                InstructorCourseId = a.instructor_course_id,
                AssignmentName = a.assignment_name,
                AssignmentDesc = a.assignment_desc,
                AssignmentType = a.assignment_type,
                SubmissionType = a.submission_type,
                MaxPoints = a.max_points,
                DueDate = a.due_date,
                CourseId = c.course_id,
                CourseNum = c.course_num,
                CourseName = c.course_name,
                StudentId = sc.student_id
            }).ToList();
            int i = 0;

            foreach (var item in query)
            {
                AssignmentItemList.Add(new AssignmentItem());
                AssignmentItemList[i].AssignmentId       = item.AssignmentId;
                AssignmentItemList[i].AssignmentDesc     = item.AssignmentDesc;
                AssignmentItemList[i].InstructorCourseId = item.InstructorCourseId;
                AssignmentItemList[i].AssignmentName     = item.AssignmentName;
                AssignmentItemList[i].AssignmentType     = item.AssignmentType;
                AssignmentItemList[i].MaxPoints          = item.MaxPoints;
                AssignmentItemList[i].DueDate            = item.DueDate;
                AssignmentItemList[i].CourseId           = item.CourseId;
                AssignmentItemList[i].CourseNum          = item.CourseNum;
                AssignmentItemList[i].CourseName         = item.CourseName;
                AssignmentItemList[i].SubmissionType     = item.SubmissionType;
                i++;
            }
        }
Пример #29
0
        //This method generates all of the student assignments for a particular course
        //Generates a list of StudentAssignmentItems (targeted for student views)
        public static void GenerateStudentAssignmentList(int?id)
        {
            StudentAssignments = new List <StudentAssignmentItem>();
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();
            var query = (from a in gds.Assignments
                         join ic in gds.InstructorCourses on a.instructor_course_id equals ic.instructor_course_id
                         join sc in gds.StudentCourses on ic.course_id equals sc.course_id
                         join c in gds.Courses on ic.course_id equals c.course_id
                         where c.course_id == id && sc.student_id == Name.user_id      //Name.user_id is the student, so find matching student_id
                         select new
            {
                AssignmentId = a.assignment_id,
                InstructorCourseId = a.instructor_course_id,
                AssignmentName = a.assignment_name,
                AssignmentDesc = a.assignment_desc,
                AssignmentType = a.assignment_type,
                MaxPoints = a.max_points,
                DueDate = a.due_date,
                CourseId = c.course_id,
                CourseNum = c.course_num,
                CourseName = c.course_name,
                StudentId = sc.student_id
            }).ToList();

            int i = 0;

            foreach (var item in query)
            {
                StudentAssignments.Add(new StudentAssignmentItem());
                StudentAssignments[i].AssignmentId       = item.AssignmentId;
                StudentAssignments[i].AssignmentDesc     = item.AssignmentDesc;
                StudentAssignments[i].InstructorCourseId = item.InstructorCourseId;
                StudentAssignments[i].AssignmentName     = item.AssignmentName;
                StudentAssignments[i].AssignmentType     = item.AssignmentType;
                StudentAssignments[i].MaxPoints          = item.MaxPoints;
                StudentAssignments[i].DueDate            = item.DueDate;
                StudentAssignments[i].CourseId           = item.CourseId;
                StudentAssignments[i].CourseNum          = item.CourseNum;
                StudentAssignments[i].CourseName         = item.CourseName;
                StudentAssignments[i].StudentId          = item.StudentId;
                i++;
            }
        }
Пример #30
0
        //This method generates all of the submissions for a particular assignment with the parameter id
        //Generates a list of StudentAssignmentSubmissionItems
        public static void GenerateAllSubmissions(int?assignmentId)
        {
            AllStudentSubmissions = new List <StudentAssignmentSubmissionItem>();
            LMS_GRINDEntities1 gds = new LMS_GRINDEntities1();

            var query = (from sa in gds.StudentAssignments
                         join u in gds.ulUsers
                         on sa.student_id equals u.ulUser_id
                         join a in gds.Assignments
                         on sa.assignment_id equals a.assignment_id
                         where sa.assignment_id == assignmentId
                         select new
            {
                AssignmentGradeId = sa.assignment_grade_id,
                AssignmentId = sa.assignment_id,
                StudentId = sa.student_id,
                FirstName = u.first_name,
                LastName = u.last_name,
                Grade = sa.grade,
                InstructorFeedback = sa.instructor_feedback,
                SubmissionDate = sa.submission_date,
                TextSubmission = sa.text_submission,
                FileSubmission = sa.file_submission
            }).ToList();

            int i = 0;

            foreach (var item in query)
            {
                AllStudentSubmissions.Add(new StudentAssignmentSubmissionItem());
                AllStudentSubmissions[i].AssignmentGradeId  = item.AssignmentGradeId;
                AllStudentSubmissions[i].AssignmentId       = item.AssignmentId;
                AllStudentSubmissions[i].StudentId          = item.StudentId;
                AllStudentSubmissions[i].Grade              = item.Grade;
                AllStudentSubmissions[i].SubmissionDate     = (DateTime)item.SubmissionDate;
                AllStudentSubmissions[i].TextSubmission     = item.TextSubmission;
                AllStudentSubmissions[i].FileSubmission     = item.FileSubmission;
                AllStudentSubmissions[i].FirstName          = item.FirstName;
                AllStudentSubmissions[i].LastName           = item.LastName;
                AllStudentSubmissions[i].InstructorFeedback = item.InstructorFeedback;
                i++;
            }
        }