public async Task <ForumPost> Insert(ForumPostForCreateDto forumPost) { var user = await context .Users .FirstOrDefaultAsync(u => u.Id == forumPost.AuthorId); if (user == null) { throw new ArgumentNullException(nameof(forumPost.AuthorId)); } var forumThread = await context .ForumThreads .FirstOrDefaultAsync(f => f.Id == forumPost.ForumThreadId); if (forumThread == null) { throw new ArgumentNullException(nameof(forumPost.ForumThreadId)); } var forumPostToCreate = new ForumPost(forumPost.AuthorId, forumPost.ForumThreadId, forumPost.Content); context.ForumPosts.Add(forumPostToCreate); await context.SaveChangesAsync(); return(forumPostToCreate); }
public async Task <IActionResult> PostForumPost(ForumPostForCreateDto forumPost) { try { var user = await GetUser(); forumPost.AuthorId = user.Id; var forumPostCreated = await context.Insert(forumPost); return(Ok(mapper.Map <ForumPostPreviewDto>(forumPostCreated))); } catch (ArgumentNullException e) { var paramName = e.ParamName; if (paramName != null) { return(NotFound(paramName)); } throw; } }