public async Task <ActionResult <BlogResource> > UpdateBlog(int id, [FromBody] SaveBlogResource saveBlogResource)
        {
            var validator        = new SaveBlogResourceValidator();
            var validationResult = await validator.ValidateAsync(saveBlogResource);

            var requestIsInvalid = id == 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var blogToBeUpdate = await _blogService.GetBlogById(id);

            if (blogToBeUpdate == null)
            {
                return(NotFound());
            }

            var blog = _mapper.Map <SaveBlogResource, Blog>(saveBlogResource);

            await _blogService.UpdateBlog(blogToBeUpdate, blog);

            var updatedblog = await _blogService.GetBlogById(id);

            var updatedBlogResource = _mapper.Map <Blog, BlogResource>(updatedblog);

            return(Ok(updatedBlogResource));
        }
        public async Task <ActionResult <BlogResource> > CreateBlog([FromBody] SaveBlogResource saveBlogResource)
        {
            var validator        = new SaveBlogResourceValidator();
            var validationResult = await validator.ValidateAsync(saveBlogResource);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var blogToCreate = _mapper.Map <SaveBlogResource, Blog>(saveBlogResource);

            var newBlog = await _blogService.CreateBlog(blogToCreate);

            var blog = await _blogService.GetBlogById(newBlog.Id);

            var blogResource = _mapper.Map <Blog, BlogResource>(blog);

            return(Ok(blogResource));
        }