public ResultDto <CommentDto> AddCommentToPost(CommentDto commentDto) { if (string.IsNullOrWhiteSpace(commentDto.Contents)) { return new ResultDto <CommentDto>() { RequestStatus = RequestStatus.Error, Message = "Comment cannot be empty" } } ; var post = _postRepository.GetPostById(commentDto.PostId); if (post == null) { return new ResultDto <CommentDto>() { Message = "Couldn't find post", RequestStatus = RequestStatus.NotFound } } ; var isSubscribed = _subscriptionService.IsUserSubscribedTo(post.PublisherId, commentDto.CommentingUserId).Data; if (isSubscribed || post.PublisherId == commentDto.CommentingUserId) { var comment = new Comment() { CommentingUserId = commentDto.CommentingUserId, Contents = commentDto.Contents, PostId = commentDto.PostId, DateAdded = DateTime.Now }; var addedComment = _commentRepository.AddCommentToPost(comment); return(new ResultDto <CommentDto>() { Message = "Comment added", RequestStatus = RequestStatus.Success, Data = Mapper.Map <CommentDto>(comment) }); } else { return new ResultDto <CommentDto>() { Message = "You haven't subscribed to this user", RequestStatus = RequestStatus.NotAuthorized } }; }