Esempio n. 1
0
        public IActionResult PostBlog([FromBody] CreateBlogPost blogPost)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Some of the properties are not valid"));
                }

                string slug = blogPost.Title.Replace(' ', '-').ToLower();

                var blog = _repositoryBlogPost.GetBySlug(slug);

                if (blog != null)
                {
                    return(BadRequest("Blog with that slug already exists"));
                }

                blog = _repositoryBlogPost.Insert(blogPost, slug);

                return(Ok(_repositoryBlogPost.GetBySlug(blog.Slug)));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                return(StatusCode(500));
            }
        }
Esempio n. 2
0
        /// <inheritdoc />
        public BlogPost Create(CreateBlogPost newBlogPostData)
        {
            var newBlogPost = new BlogPost()
            {
                Id    = ++_blogPostId,
                Title = newBlogPostData.Title,
                Text  = newBlogPostData.Text,
            };

            _blogPosts.Add(newBlogPost);
            return(newBlogPost);
        }
Esempio n. 3
0
        public ActionResult <BlogPost> Create([FromBody] CreateBlogPost createBlogPost)
        {
            var newBlogPost = new DTO.CreateBlogPost()
            {
                Title = createBlogPost.Title,
                Text  = createBlogPost.Text,
            };
            var createdBlogPost = _blogPostsDataService.Create(newBlogPost);

            // return createdBlogPost;
            return(null);
        }
Esempio n. 4
0
 public IActionResult Post([FromBody] CreateBlogPost createBlogPost)
 {
     try
     {
         return(Ok(BlogPostServiceManagement.CreateBlogPost(createBlogPost)));
     }
     catch (ArgumentNullException)
     {
         return(BadRequest());
     }
     catch (DuplicateNameException)
     {
         return(BadRequest());
     }
 }
Esempio n. 5
0
        public BlogPost Insert(CreateBlogPost entity, string slug)
        {
            using (var cn = new SqlConnection(_connectionString))
            {
                cn.Execute(@"INSERT INTO BlogPosts VALUES (@title, @description, @body, GETDATE(), null, @slug)",
                           new { entity.Title, entity.Description, entity.Body, slug });

                var blog = cn.QueryFirstOrDefault <BlogPost>(@"SELECT * FROM BlogPosts WHERE Slug = @slug", new { slug });

                foreach (var tag in entity.TagList)
                {
                    var tagName = cn.QueryFirstOrDefault <Tag>(@"SELECT * FROM Tags WHERE TagName = @tag", new { tag });
                    if (tagName == null)
                    {
                        cn.Execute(@"INSERT INTO Tags VALUES (@tag)", new { tag });
                        tagName = cn.QueryFirstOrDefault <Tag>(@"SELECT * FROM Tags WHERE TagName = @tag", new { tag });
                    }
                    cn.Execute(@"INSERT INTO BlogPostsTags VALUES(@tagId, @blogId)", new { tagId = tagName.Id, blogId = blog.Id });
                }

                return(blog);
            }
        }
Esempio n. 6
0
        public BlogPostDto CreateBlogPost(CreateBlogPost createBlogPost)
        {
            if (createBlogPost.Title == null)
            {
                throw new ArgumentNullException();
            }

            BlogPost blogPost = new BlogPost();

            SlugHelper slugHelper = new SlugHelper();
            string     Slug       = slugHelper.GenerateSlug(createBlogPost.Title);

            ValidateBlogPost(Slug);

            blogPost.Title       = createBlogPost.Title;
            blogPost.Slug        = Slug;
            blogPost.Description = createBlogPost.Description;
            blogPost.Body        = createBlogPost.Body;

            blogPost.CreatedAt = DateTime.Now;
            blogPost.UpdatedAt = DateTime.Now;
            BlogDBContext.BlogPosts.Add(blogPost);
            BlogDBContext.SaveChanges();

            BlogPostDto blogPostDto = new BlogPostDto
            {
                Slug        = blogPost.Slug,
                Title       = blogPost.Title,
                Description = blogPost.Description,
                Body        = blogPost.Body
            };

            blogPostDto.CreatedAt = blogPost.CreatedAt;
            blogPostDto.UpdatedAt = blogPost.UpdatedAt;
            return(blogPostDto);
        }