Exemplo n.º 1
0
        public IActionResult AddPost([FromBody] AddPostRequest request)
        {
            try
            {
                if (request == null)
                {
                    return(BadRequest(new ErrorViewModel
                    {
                        ErrorCode = "400",
                        ErrorMessage = "Please provide input information correctly."
                    }));
                }

                var PostQuery = _postRepository.FindByTitle(request.Title);
                if (PostQuery != null)
                {
                    return(BadRequest(new ErrorViewModel
                    {
                        ErrorCode = "400",
                        ErrorMessage = "Post have been create"
                    }));
                }

                var User = _userRepository.FindById(request.UserId);
                if (User == null)
                {
                    return(BadRequest(new ErrorViewModel
                    {
                        ErrorCode = "400",
                        ErrorMessage = "User not found"
                    }));
                }

                var Category = _categoryRepository.FindById(request.CategoryId);
                if (Category == null)
                {
                    return(BadRequest(new ErrorViewModel
                    {
                        ErrorCode = "400",
                        ErrorMessage = "Category not found"
                    }));
                }

                var Post = new Post()
                {
                    Title      = request.Title,
                    Context    = request.Context,
                    TimeStamp  = DateTime.UtcNow,
                    CategoryId = request.CategoryId,
                    UserId     = request.UserId
                };

                var response = _postServices.AddPost(Post);
                if (response != "OK")
                {
                    return(BadRequest("Can not execute. Plz contact admin"));
                }
                return(Ok(response));
            }
            catch (Exception e)
            {
                return(BadRequest(new ErrorViewModel
                {
                    ErrorCode = "400",
                    ErrorMessage = $"Server Error: {e.Message}"
                }));
            }
        }
Exemplo n.º 2
0
        public IActionResult AddPost([FromBody] AddPostRequest request)
        {
            if (request == null)
            {
                return(BadRequest(new ErrorViewModel
                {
                    ErrorCode = "400",
                    ErrorMessage = "Please provide input information correctly."
                }));
            }


            var PostQuery = _postRepository.FindByTitle(request.Title);

            if (PostQuery != null)
            {
                return(BadRequest(new ErrorViewModel
                {
                    ErrorCode = "400",
                    ErrorMessage = "Post have been create"
                }));
            }

            var User = _userRepository.FindById(request.UserId);

            if (User == null)
            {
                return(BadRequest(new ErrorViewModel
                {
                    ErrorCode = "400",
                    ErrorMessage = "User not found"
                }));
            }

            var Category = _categoryRepository.FindById(request.CategoryId);

            if (Category == null)
            {
                return(BadRequest(new ErrorViewModel
                {
                    ErrorCode = "400",
                    ErrorMessage = "Category not found"
                }));
            }


            var tags = new List <Tag>();

            if (request.TagIds != null)
            {
                if (request.TagIds.Count != request.TagIds.Distinct().Count())
                {
                    return(BadRequest(new ErrorViewModel
                    {
                        ErrorCode = "400",
                        ErrorMessage = "Duplicate tag"
                    }));
                }

                foreach (var item in request.TagIds)
                {
                    var tag = _tagRepository.FindById(item);
                    if (tag == null)
                    {
                        return(BadRequest(new ErrorViewModel
                        {
                            ErrorCode = "400",
                            ErrorMessage = "Category not found"
                        }));
                    }
                    tag.Posts = null;
                    tags.Add(tag);
                }
            }

            var Post = new Post()
            {
                Title      = request.Title,
                Context    = request.Context,
                Url        = request.Url,
                TimeStamp  = request.TimeStamp,
                Tags       = tags,
                CategoryId = request.CategoryId,
                UserId     = request.UserId
            };

            var response = _postServices.AddPost(Post);

            if (response != "OK")
            {
                return(BadRequest("Can not execute. Plz contact admin"));
            }
            return(Ok(response));
        }