コード例 #1
0
        // GET: Courses/Delete/courseId
        // returns delete view with confirmation of the course being deleted
        public ActionResult Delete(int?courseId)
        {
            if (courseId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var    id     = (int)courseId;
            Course course = CourseHelper.GetById(id);

            if (course == null)
            {
                return(HttpNotFound());
            }

            var isSupervisor = SupervisorHelper.IsUserSupervisor(CurrentWebContext.CurrentUser.UserID, id);

            if (!isSupervisor)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }

            ViewBag.Title = course.CourseName;

            var success = course.Delete();

            ViewBag.Success = success;

            return(View());
        }
コード例 #2
0
        // GET: Courses/Edit/courseId
        // returns edit view where a teacher can modify the course's data
        public ActionResult Edit(int?courseId)
        {
            if (courseId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            int id = (int)courseId;

            Course course = CourseHelper.GetById(id);

            if (course == null)
            {
                return(HttpNotFound());
            }

            // check if the user trying to access the course is a supervisor
            var supervisors = SupervisorHelper.GetSupervisorsForCourse(id);

            // if he isn't, then return him => denied
            if (!supervisors.Any(x => x.UserID == CurrentWebContext.CurrentUser.UserID))
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }

            // create the viewmodel
            var viewModel = DetailedCourseVM.CreateDetailedCourseVMW(course, supervisors);

            ViewBag.CountOfPendingStudents = ParticipantHelper.GetCountOfPendingParticipants(id);

            return(View(viewModel));
        }
コード例 #3
0
ファイル: DetailedCourseVM.cs プロジェクト: alex-asd/Arms
        public static DetailedCourseVM CreateDetailedCourseVMW(Course course)
        {
            var vm = new DetailedCourseVM(course)
            {
                Supervisors  = SupervisorHelper.GetSupervisorsForCourse(course.CourseID),
                Lectures     = LectureHelper.GetLecturesForCourse(course.CourseID),
                Participants = UserHelper.GetParticipantsForCourse(course.CourseID)
            };

            return(vm);
        }
コード例 #4
0
        // GET: Courses/SeeDetailedOverview/courseId&studentId
        // returns detailed overviev view for the specified student and targeted course
        public ActionResult SeeDetailedOverview(int courseId, int studentId)
        {
            Course course  = CourseHelper.GetById(courseId);
            User   student = UserHelper.GetById(studentId);

            if (course == null || student == null)
            {
                return(HttpNotFound());
            }

            var isSupervisor = SupervisorHelper.IsUserSupervisor(CurrentWebContext.CurrentUser.UserID, courseId);

            if (!isSupervisor)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden));
            }

            ViewBag.AttendancePerformance = ParticipantHelper.GetParticipantAttendance(student.UserID, course.CourseID);

            var vm = DetailedOverviewForStudentVM.CreateDetailedOverviewForStudentVM(student, course);

            return(View(vm));
        }
コード例 #5
0
ファイル: UtilController.cs プロジェクト: alex-asd/Arms
 public void DeleteSupervisor(int userId, int courseId)
 {
     SupervisorHelper.DeleteSupervisor(userId, courseId);
 }