public ActionResult Create(AnnouncementCommentViewModel commentViewModel) { if (ModelState.IsValid) { AnnouncementComment comment = new AnnouncementComment() { Id = commentViewModel.CommentId, AnnouncementId = commentViewModel.AnnouncementId, Comment = commentViewModel.Comment, CreatedAt = DateTime.Now, IsActive = true, UserId = WebSecurity.CurrentUserId }; try { _announcementCommentRepository.Save(comment); } catch (DataException) { TempData["error"] = ProjectConfiguration.Get.DataErrorMessage; } return(RedirectToAction("Details", "Announcement", new { Id = comment.AnnouncementId })); } else { TempData["Comment"] = commentViewModel.Comment; return(RedirectToAction("Details", "Announcement", new { Id = commentViewModel.AnnouncementId })); } }
private void EnsureInDeleteAccess(AnnouncementComment comment, AnnouncementTypeEnum?type = null) { EnsureInCreateAccess(comment.AnnouncementRef, type); if (!BaseSecurity.IsDistrictOrTeacher(Context)) { throw new ChalkableSecurityException(); } }
public static AnnouncementCommentViewData Create(AnnouncementComment announcementComment, IList <AttachmentInfo> attachments, int currentPersonId) { return(new AnnouncementCommentViewData { Id = announcementComment.Id, AnnouncementId = announcementComment.AnnouncementRef, Attachments = attachments?.Select(x => AttachmentViewData.Create(x, currentPersonId)).ToList(), ParentCommentId = announcementComment.ParentCommentRef, Owner = ShortPersonViewData.Create(announcementComment.Person), TimePosted = announcementComment.PostedDate, Text = announcementComment.Text, Hidden = announcementComment.Hidden, Deleted = announcementComment.Deleted }); }
public static AnnouncementCommentViewData PrepareCommentViewData(AnnouncementComment comment, IServiceLocatorSchool serviceLocator) { Trace.Assert(serviceLocator.Context.PersonId.HasValue); var attachmentInfo = comment.Attachments?.Select(x => serviceLocator.AttachementService.TransformToAttachmentInfo(x)).ToList() ?? new List <AttachmentInfo>(); var res = AnnouncementCommentViewData.Create(comment, attachmentInfo, serviceLocator.Context.PersonId.Value); if (comment.SubComments != null && comment.SubComments.Count > 0) { res.SubComments = new List <AnnouncementCommentViewData>(); foreach (var subComment in comment.SubComments) { res.SubComments.Add(PrepareCommentViewData(subComment, serviceLocator)); } } return(res); }