private static void SortComments(ref Page page) { if (page == null) throw new ArgumentNullException(); page.Comments = page.Comments.OrderByDescending(x => x.Posted).ToList(); }
public async Task<Page> AddCommentAsync(string title, string content, IPrincipal user, Page page) { if (string.IsNullOrWhiteSpace(title) || string.IsNullOrWhiteSpace(content) || user == null || page == null) throw new ArgumentException(); var appuser = await _userService.GetUserByIPrincipalAsync(user); var comment = new PageComment { Author = appuser, Content = content.FilterHtml(), Id = Guid.NewGuid(), OriginalContent = page, Posted = DateTime.Now, Title = HttpUtility.HtmlEncode(title) }; page.Comments.Add(comment); await _db.SaveChangesAsync(); SortComments(ref page); return page; }
public async Task<Guid> AddPageAsync(string title, string content, IPrincipal user) { if (string.IsNullOrWhiteSpace(title) || string.IsNullOrWhiteSpace(content) || user == null) throw new ArgumentException(); var appuser = await _userService.GetUserByNameAsync(user.Identity.Name); if (appuser == null) throw new ArgumentException(); var page = new Page { Author = appuser, Comments = new List<PageComment>(), Content = content.ConvertNewlines(), Id = Guid.NewGuid(), LastEdited = DateTime.Now, Posted = DateTime.Now, Title = HttpUtility.HtmlEncode(title) }; _db.Pages.Add(page); await _db.SaveChangesAsync(); return page.Id; }
public async Task DeletePageAsync(Page page) { if (page == null) throw new ArgumentNullException(); _db.Pages.Remove(page); await _db.SaveChangesAsync(); }
public async Task AddComment() { var page = new Page(); PageServiceMock.Setup(f => f.GetPageByIdAsync("guid")) .ReturnsAsync(page); var comment = new CommentSubmittionModel("guid"); comment.Comment.Content = "some content"; comment.Comment.Title = "titlehere"; var result = await Controller.SubmitComment(comment) as RedirectToRouteResult; Assert.IsNotNull(result); PageServiceMock.Verify(f => f.AddCommentAsync("titlehere", "some content", It.IsAny<IPrincipal>(), page)); }