private void GenerateUniqueSlugForPage(CmsPage cmsPage, SitemapRelativePosition sitemapRelativePosition) { if (string.IsNullOrWhiteSpace(cmsPage.Name)) { throw new Exception("Page name is required."); } bool foundUniqueSlug = false; cmsPage.Slug = Slug.FromPageName(cmsPage.Name); int counter = 2; while (!foundUniqueSlug) { var rawSlug = cmsPage.Name; try { AssertSlugIsNotTaken(cmsPage, sitemapRelativePosition); foundUniqueSlug = true; } catch (DuplicateSlugException e) { cmsPage.Name = rawSlug + counter; counter++; } } }