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}" })); } }
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)); }