Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
            }
        }