Beispiel #1
0
        public async Task <string> GetUniqueSlugAsync(string slug, Guid?bookId = null)
        {
            var booksWithSameSlugs = await _unitOfWork.BookRepository.FindByAsync(o => o.Id != bookId && o.Slug.StartsWith(slug));

            var existingSlugs = booksWithSameSlugs.Select(o => o.Slug);

            return(SlugHelper.GetUniqueSlug(slug, existingSlugs));
        }
Beispiel #2
0
        public async Task <string> GetUniqueSlugAsync(string slug, Guid bookId, Guid?pageId = null)
        {
            var pagesWithSameSlugs = await _unitOfWork.PageRepository.FindByAsync(o => o.Book.Id == bookId && o.Id != pageId && o.Slug.StartsWith(slug));

            var existingSlugs = pagesWithSameSlugs.Select(o => o.Slug);

            if (!existingSlugs.Any(o => o == slug))
            {
                return(slug);
            }

            return(SlugHelper.GetUniqueSlug(slug, existingSlugs));
        }
Beispiel #3
0
 public void CheckGetUniqueSlug(string requestedSlug, string slugResult, string[] existingSlugs)
 {
     Assert.Equal(SlugHelper.GetUniqueSlug(requestedSlug, existingSlugs), slugResult);
 }