public async Task <ForumThread> Insert(ForumThreadForCreateDto forumThread) { var user = await context .Users .FirstOrDefaultAsync(u => u.Id == forumThread.AuthorId); if (user == null) { throw new ArgumentNullException(nameof(forumThread.AuthorId)); } var threadToCreate = new ForumThread(forumThread.AuthorId, forumThread.Title); context.ForumThreads.Add(threadToCreate); var postToCreate = new ForumPost(user.Id, threadToCreate.Id, forumThread.Content); context.ForumPosts.Add(postToCreate); await context.SaveChangesAsync(); return(threadToCreate); }
public async Task <IActionResult> PostForumThread(ForumThreadForCreateDto forumThread) { try { forumThread.AuthorId = (await GetUser()).Id; var forumThreadCreated = await context.Insert(forumThread); return(CreatedAtAction("GetForumThread", new { forumThreadId = forumThreadCreated.Id }, forumThreadCreated)); } catch (ArgumentNullException e) { var paramName = e.ParamName; if (paramName != null) { return(NotFound(paramName)); } throw; } }