예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }