Ejemplo n.º 1
0
        internal OutboundRule CreateOutboundRuleFromOutboundRuleItem(OutboundRuleItem outboundRuleItem,
                                                                     RedirectFolderItem redirectFolderItem)
        {
            var outboundRule = outboundRuleItem.ToOutboundRule();

            return(outboundRule);
        }
Ejemplo n.º 2
0
        public static OutboundRule ToOutboundRule(this OutboundRuleItem outboundRuleItem)
        {
            if (outboundRuleItem == null)
            {
                return(null);
            }

            var conditionItems = GetBaseConditionItems(outboundRuleItem);

            var outboundRule = new OutboundRule
            {
                ItemId = outboundRuleItem.ID.Guid,
                Name   = outboundRuleItem.Name
            };

            SetBaseRule(outboundRuleItem.BaseRuleItem, outboundRule);

            SetOutboundMatch(outboundRuleItem.OutboundMatchItem, outboundRule);

            GetPrecondition(outboundRuleItem.OutboundPreconditionItem, outboundRule);

            if (string.IsNullOrEmpty(outboundRuleItem.BaseRuleItem.BaseMatchItem.MatchPatternItem.Pattern.Value))
            {
                Log.Warn(logObject, outboundRuleItem.Database, "No pattern set on rule with ItemID: {0}", outboundRuleItem.ID);

                return(null);
            }

            if (outboundRuleItem.Action == null)
            {
                Log.Warn(logObject, outboundRuleItem.Database, "No action set on rule with ItemID: {0}", outboundRuleItem.ID);

                return(null);
            }

            var         baseActionItem = outboundRuleItem.Action.TargetItem;
            IBaseAction baseAction     = null;

            if (baseActionItem != null)
            {
                var baseActionItemTemplateId = baseActionItem.TemplateID.ToString();

                if (baseActionItemTemplateId.Equals(OutboundRewriteItem.TemplateId, StringComparison.InvariantCultureIgnoreCase))
                {
                    baseAction = new OutboundRewriteItem(baseActionItem).ToOutboundRewriteAction();
                }
            }
            outboundRule.Action = baseAction;

            if (conditionItems != null)
            {
                SetConditions(conditionItems, outboundRule);
            }

            return(outboundRule);
        }
Ejemplo n.º 3
0
        public List <OutboundRule> GetOutboundRules()
        {
            if (db == null)
            {
                return(null);
            }

            var redirectFolderItems = GetRedirectFolderItems();

            if (redirectFolderItems == null)
            {
                return(null);
            }

            var outboundRules = new List <OutboundRule>();

            foreach (var redirectFolderItem in redirectFolderItems)
            {
                Log.Debug(this, db, "Loading Outbound Rules from RedirectFolder: {0}", redirectFolderItem.Name);

                var folderDescendants = redirectFolderItem.Axes.GetDescendants()
                                        .Where(x => x.TemplateID == new ID(new Guid(OutboundRuleItem.TemplateId)));

                foreach (var descendantItem in folderDescendants)
                {
                    if (descendantItem.TemplateID == new ID(new Guid(OutboundRuleItem.TemplateId)))
                    {
                        var outboundRuleItem = new OutboundRuleItem(descendantItem);

                        Log.Debug(this, db, "Loading OutboundRule: {0}", outboundRuleItem.Name);

                        var outboundRule = CreateOutboundRuleFromOutboundRuleItem(outboundRuleItem, redirectFolderItem);

                        if (outboundRule != null && outboundRule.Enabled)
                        {
                            outboundRules.Add(outboundRule);
                        }
                    }
                }
            }

            return(outboundRules);
        }