Exemple #1
0
        internal OutboundRule CreateOutboundRuleFromOutboundRuleItem(OutboundRuleItem outboundRuleItem,
                                                                     RedirectFolderItem redirectFolderItem)
        {
            var outboundRule = outboundRuleItem.ToOutboundRule();

            return(outboundRule);
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
        internal static string GetSiteNameRestriction(RedirectFolderItem redirectFolder)
        {
            var site = redirectFolder.SiteNameRestriction.Value;

            return(site);
        }
Exemple #4
0
        internal InboundRule CreateInboundRuleFromInboundRuleItem(InboundRuleItem inboundRuleItem, RedirectFolderItem redirectFolderItem)
        {
            var siteNameRestriction = GetSiteNameRestriction(redirectFolderItem);
            var inboundRule         = inboundRuleItem.ToInboundRule(siteNameRestriction);

            return(inboundRule);
        }
Exemple #5
0
        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);
        }