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); }
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) { } }
public static void AddRedirects(PageData pageData, string oldUrl, CultureInfo cultureInfo, SystemRedirectReason systemRedirectReason) { AddRedirects(pageData, oldUrl, systemRedirectReason); HandleChildren(pageData, oldUrl, cultureInfo, systemRedirectReason); }