internal OutboundRule CreateOutboundRuleFromOutboundRuleItem(OutboundRuleItem outboundRuleItem, RedirectFolderItem redirectFolderItem) { var outboundRule = outboundRuleItem.ToOutboundRule(); return(outboundRule); }
private void AssembleRulesRecursive(Item ruleOrFolderItem, ref List <InboundRule> rules, RedirectFolderItem redirectFolderItem) { if (ruleOrFolderItem.TemplateID == new ID(new Guid(SimpleRedirectItem.TemplateId))) { var simpleRedirectItem = new SimpleRedirectItem(ruleOrFolderItem); Log.Debug(this, db, "Loading SimpleRedirect: {0}", simpleRedirectItem.Name); var inboundRule = CreateInboundRuleFromSimpleRedirectItem(simpleRedirectItem, redirectFolderItem); if (inboundRule != null && inboundRule.Enabled) { rules.Add(inboundRule); } } else if (ruleOrFolderItem.TemplateID == new ID(new Guid(InboundRuleItem.TemplateId))) { var inboundRuleItem = new InboundRuleItem(ruleOrFolderItem); Log.Debug(this, db, "Loading InboundRule: {0}", inboundRuleItem.Name); var inboundRule = CreateInboundRuleFromInboundRuleItem(inboundRuleItem, redirectFolderItem); if (inboundRule != null && inboundRule.Enabled) { rules.Add(inboundRule); } } else if (ruleOrFolderItem.TemplateID == new ID(new Guid(BucketItem.TemplateId)) || ruleOrFolderItem.TemplateID == new ID(new Guid(NodeItem.TemplateId)) || ruleOrFolderItem.TemplateID == new ID(new Guid(RedirectSubFolderItem.TemplateId)) || ruleOrFolderItem.TemplateID == new ID(new Guid(RedirectFolderItem.TemplateId))) { ChildList childRules = ruleOrFolderItem.GetChildren(); foreach (Item childRule in childRules) { AssembleRulesRecursive(childRule, ref rules, redirectFolderItem); } } }
internal static string GetSiteNameRestriction(RedirectFolderItem redirectFolder) { var site = redirectFolder.SiteNameRestriction.Value; return(site); }
internal InboundRule CreateInboundRuleFromInboundRuleItem(InboundRuleItem inboundRuleItem, RedirectFolderItem redirectFolderItem) { var siteNameRestriction = GetSiteNameRestriction(redirectFolderItem); var inboundRule = inboundRuleItem.ToInboundRule(siteNameRestriction); return(inboundRule); }
internal InboundRule CreateInboundRuleFromSimpleRedirectItem(SimpleRedirectItem simpleRedirectItem, RedirectFolderItem redirectFolderItem) { var inboundRulePattern = string.Format("^{0}/?$", simpleRedirectItem.Path.Value); var siteNameRestriction = GetSiteNameRestriction(redirectFolderItem); var redirectTo = simpleRedirectItem.Target; string actionRewriteUrl; Guid? redirectItem; string redirectItemAnchor; GetRedirectUrlOrItemId(redirectTo, out actionRewriteUrl, out redirectItem, out redirectItemAnchor); Log.Debug(this, simpleRedirectItem.Database, "Creating Inbound Rule From Simple Redirect Item - {0} - id: {1} actionRewriteUrl: {2} redirectItem: {3}", simpleRedirectItem.Name, simpleRedirectItem.ID.Guid, actionRewriteUrl, redirectItem); var inboundRule = new InboundRule { Action = new Redirect { AppendQueryString = true, Name = "Redirect", StatusCode = RedirectStatusCode.Permanent, RewriteUrl = actionRewriteUrl, RewriteItemId = redirectItem, RewriteItemAnchor = redirectItemAnchor, StopProcessingOfSubsequentRules = false, HttpCacheability = HttpCacheability.NoCache }, SiteNameRestriction = siteNameRestriction, Enabled = simpleRedirectItem.BaseEnabledItem.Enabled.Checked, IgnoreCase = true, ItemId = simpleRedirectItem.ID.Guid, ConditionLogicalGrouping = LogicalGrouping.MatchAll, Name = simpleRedirectItem.Name, Pattern = inboundRulePattern, MatchType = MatchType.MatchesThePattern, Using = Using.RegularExpressions, SortOrder = simpleRedirectItem.SortOrder }; return(inboundRule); }