public override MBlogPost Update(string slug, BlogPostUpdateRequest request)
        {
            var entity = _context.BlogPost.Where(i => i.Slug == slug).FirstOrDefault();

            if (request.Title != null)
            {
                entity.Slug = SlugifyExtension.Slugify(request.Title);
            }

            _mapper.Map(request, entity);
            _context.SaveChanges();

            var model = new MBlogPost
            {
                Slug        = entity.Slug,
                Title       = entity.Title,
                Description = entity.Description,
                Body        = entity.Body,
                CreatedAt   = entity.CreatedAt,
                UpdatedAt   = DateTime.Now,
                tagsList    = _context.BlogsTags.Where(i => i.BlogPostId == entity.BlogPostId).Select(i => i.TagList.TagName).ToList()
            };

            return(_mapper.Map <MBlogPost>(model));
        }
        public override MBlogPost Insert(BlogPostInsertRequest request)
        {
            var entity = _mapper.Map <BlogPost>(request);

            entity.CreatedAt = DateTime.Now;
            entity.UpdatedAt = DateTime.Now;
            var slug = SlugifyExtension.Slugify(request.Title);

            if (_context.BlogPost.Any(p => p.Slug == slug))
            {
                var i = 1;
                while (_context.BlogPost.Any(p => p.Slug == string.Concat(slug, "-", i.ToString())))
                {
                    i++;
                }
                slug = string.Concat(slug, "-", i.ToString());
            }
            entity.Slug = slug;
            _context.Set <BlogPost>().Add(entity);
            _context.SaveChanges();

            if (request.Tags != null)
            {
                foreach (var x in request.Tags)
                {
                    var tag       = _context.TagList.Where(i => i.TagName == x).FirstOrDefault();
                    var blogsTags = new BlogsTags();

                    if (tag == null)
                    {
                        var newlyAdded = new TagList {
                            TagName = x
                        };
                        _context.Set <TagList>().Add(newlyAdded);
                        _context.SaveChanges();

                        blogsTags.TagListId = newlyAdded.TagListId;
                    }
                    else
                    {
                        blogsTags.TagListId = tag.TagListId;
                    }

                    blogsTags.BlogPostId = entity.BlogPostId;

                    _context.Set <BlogsTags>().Add(blogsTags);
                }
            }
            _context.SaveChanges();

            var model = new MBlogPost
            {
                Slug        = entity.Slug,
                Title       = entity.Title,
                Description = entity.Description,
                Body        = entity.Body,
                CreatedAt   = entity.CreatedAt,
                UpdatedAt   = entity.UpdatedAt,
                tagsList    = _context.BlogsTags.Where(i => i.BlogPostId == entity.BlogPostId).Select(i => i.TagList.TagName).ToList()
            };

            return(_mapper.Map <MBlogPost>(model));
        }