예제 #1
0
        public ActionResult Create(Comment comment)
        {
            comment.UserId          = User.Identity.GetUserId();
            comment.Created         = DateTime.Now;
            comment.ProjectTask     = projectTasksRepo.GetProjectTaskById(comment.ProjectTaskId);
            comment.ApplicationUser = usersRepo.GetUserById(User.Identity.GetUserId());

            if (!(coursesRepo.IsInCourse(comment.ProjectTask.Project.Course.Id, comment.UserId, User.IsInRole("Administrator"))))
            {
                throw new HttpException((int)HttpStatusCode.Forbidden, "Forbidden!");
            }

            commentsRepo.AddComment(comment);

            if (Request.IsAjaxRequest())
            {
                var commentsHelper = new CommentsHelper();

                var commentsFromProjectTask = commentsRepo.GetCommentsForProjectTaskId(comment.ProjectTaskId);
                var comments = commentsHelper.CommentViewModelsFromComments(commentsFromProjectTask, User.IsInRole("Administrator"), User.Identity.GetUserId()).ToList();
                return(Json(comments, JsonRequestBehavior.AllowGet));
            }

            ViewBag.AllUsers = db.Users.ToList();
            return(View("~/Views/ProjectTasks/Details.cshtml", comment.ProjectTask));
        }
예제 #2
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                throw new HttpException((int)HttpStatusCode.BadRequest, "Bad request!");
            }

            var projectTask = projectTasksRepository.GetProjectTaskById(id);

            if (projectTask == null)
            {
                throw new HttpException((int)HttpStatusCode.NotFound, "Not found!");
            }

            if (!coursesRepository.IsInCourse(projectTask.Project.CourseId, User.Identity.GetUserId(), User.IsInRole("Administrator")))
            {
                throw new HttpException((int)HttpStatusCode.Forbidden, "Forbidden!");
            }


            var isTeacher = (coursesRepository.IsTeacherInCourse(projectTask.Project.CourseId, User.Identity.GetUserId(), User.IsInRole("Administrator")));

            ViewBag.IsTeacher = isTeacher;
            ViewBag.AllUsers  = (from u in userCoursesRepostiory.GetUserCoursesByCourseId(projectTask.Project.CourseId)
                                 where u.CoderRole == CoderRole.Student
                                 select u.ApplicationUser).ToList();
            ViewBag.BestSubmission = submissionsRepository.GetBestUserSubmissionForTask(id.Value, User.Identity.GetUserId());

            if (isTeacher || User.IsInRole("Administrator"))
            {
                ViewBag.Submissions = submissionsRepository.GetSubmissionsForProjectTaskId(id.Value);
            }
            else
            {
                if (DateTime.Now < projectTask.Project.Start && !coursesRepository.IsAssistantTeacherInCourse(projectTask.Project.CourseId, User.Identity.GetUserId(), User.IsInRole("Administrator")))
                {
                    throw new HttpException((int)HttpStatusCode.Forbidden, "Forbidden!");
                }
                ViewBag.Submissions = submissionsRepository.GetSubmissionsForUserId(User.Identity.GetUserId());
            }
            if (ViewBag.Submissions != null)
            {
                ViewBag.Submissions = ((IEnumerable <Submission>)ViewBag.Submissions).OrderByDescending(i => i.Id);
            }
            return(View(projectTask));
        }