Esempio n. 1
0
        private static void HandleChildren(PageData data, string oldUrl, CultureInfo cultureInfo,
                                           SystemRedirectReason systemRedirectReason)
        {
            var languageSelector   = new LanguageSelector(cultureInfo.Name);
            var pageDataCollection = DataFactory.Instance.GetChildren(data.PageLink, languageSelector);

            foreach (var pageData in pageDataCollection)
            {
                var oldChildUrl = SystemRedirectsHelper.Combine(oldUrl, pageData.URLSegment);
                AddRedirects(pageData, oldChildUrl, systemRedirectReason);
                HandleChildren(pageData, oldChildUrl, cultureInfo, systemRedirectReason);
            }
        }
        public static string GetSystemRedirectReason(SystemRedirectReason systemRedirectReason)
        {
            switch (systemRedirectReason)
            {
            case SystemRedirectReason.PublishedContent:
                return("Generated from publishing new content event");

            case SystemRedirectReason.MovedContent:
                return("Generated from moving exiting content event");

            case SystemRedirectReason.SavedContent:
                return("Generated from saving exiting content event");
            }

            return(null);
        }
Esempio n. 3
0
        private static void AddRedirects(PageData pageData, string oldUrl, SystemRedirectReason systemRedirectReason)
        {
            if (!(pageData.Status == VersionStatus.PreviouslyPublished || pageData.Status == VersionStatus.Published))
            {
                return;
            }

            var redirectRule = RedirectRule.NewFromSystem(
                UrlPath.NormalizePath(oldUrl),
                pageData.ContentLink.ID,
                RedirectType.Permanent,
                RedirectRuleType.ExactMatch,
                SystemRedirectsHelper.GetSystemRedirectReason(systemRedirectReason));

            var redirectRuleRepository = ServiceLocator.Current.GetInstance <IRedirectRuleRepository>();

            try
            {
                redirectRuleRepository.Add(redirectRule);
            }
            catch (ApplicationException) { }
        }
Esempio n. 4
0
 public static void AddRedirects(PageData pageData, string oldUrl, CultureInfo cultureInfo,
                                 SystemRedirectReason systemRedirectReason)
 {
     AddRedirects(pageData, oldUrl, systemRedirectReason);
     HandleChildren(pageData, oldUrl, cultureInfo, systemRedirectReason);
 }