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)); }
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)); }
public void CheckGetUniqueSlug(string requestedSlug, string slugResult, string[] existingSlugs) { Assert.Equal(SlugHelper.GetUniqueSlug(requestedSlug, existingSlugs), slugResult); }