Ejemplo n.º 1
0
 private IWebpageUrlGenerator GetGenerator(string documentType, int? template)
 {
     IWebpageUrlGenerator generator = null;
     int id = template.GetValueOrDefault(0);
     if (id > 0)
     {
         PageTemplate pageTemplate = _session.Get<PageTemplate>(id);
         Type urlGeneratorType = pageTemplate.GetUrlGeneratorType();
         if (pageTemplate != null && urlGeneratorType != null)
         {
             generator = _kernel.Get(urlGeneratorType) as IWebpageUrlGenerator;
         }
     }
     if (generator == null && documentType != null)
     {
         generator = _kernel.Get(_settings.GetGeneratorType(documentType)) as IWebpageUrlGenerator;
     }
     return generator ?? new DefaultWebpageUrlGenerator();
 }
Ejemplo n.º 2
0
        public string Suggest(Webpage parent,SuggestParams suggestParams)
        {
            IWebpageUrlGenerator generator = GetGenerator(suggestParams.DocumentType, suggestParams.Template);

            string url = generator.GetUrl(suggestParams.PageName, parent, suggestParams.UseHierarchy);

            //make sure the URL is unique

            if (!_urlValidationService.UrlIsValidForWebpage(url, null))
            {
                int counter = 1;

                while (!_urlValidationService.UrlIsValidForWebpage(string.Format("{0}-{1}", url, counter), null))
                    counter++;

                url = string.Format("{0}-{1}", url, counter);
            }
            return url;
        }