Beispiel #1
0
        public async Task <int> Create(PostCreateViewModel viewModel)
        {
            StringBuilder permalinkBuilder = new StringBuilder();

            Post post = new Post();

            permalinkBuilder.Append(PermalinkHelper.GenerateSlug(viewModel.Title));

            int countPermalinks = _postRepository.GetPermalinks(permalinkBuilder.ToString());

            if (countPermalinks > 0)
            {
                permalinkBuilder.Append($"-{countPermalinks}");
            }

            post.Permalink     = permalinkBuilder.ToString();
            post.Title         = viewModel.Title;
            post.Text          = viewModel.Text;
            post.Summary       = SummaryHelper.GetWords(viewModel.Text, numberOfWords);
            post.DatePublished = viewModel.DatePublished;
            post.DateUpdated   = DateTime.Now;
            post.ImageBase64   = viewModel.ImageBase64;
            await _postRepository.Save(post);

            return(post.Id);
        }
Beispiel #2
0
        public Permalink GetPermalink <T>(T entity) where T : IPermalinkSupported
        {
            //first check if the entity already has a permalink
            var typeName  = typeof(T).Name;
            var permalink = FirstOrDefault(x => x.EntityName == typeName && x.EntityId == entity.Id);

            if (permalink == null)
            {
                permalink = new Permalink()
                {
                    EntityName = typeName,
                    EntityId   = entity.Id,
                    Slug       = PermalinkHelper.GenerateSlug(entity.Name),
                    Active     = true
                };
                //save it
                Insert(permalink);
            }
            return(permalink);
        }
Beispiel #3
0
        public void RemoveDiatricts()
        {
            var newPhrase = PermalinkHelper.RemoveDiacritics("Título que vai virar permalink com acentuação");

            Assert.Equal("Titulo que vai virar permalink com acentuacao", newPhrase);
        }
Beispiel #4
0
        public void GeneratePermalink()
        {
            var slug = PermalinkHelper.GenerateSlug("Título que vai virar permalink com acentuação");

            Assert.Equal("titulo-que-vai-virar-permalink-com-acentuacao", slug);
        }