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)); }
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)); }