Пример #1
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);
        }
Пример #2
0
        public static OutboundRewrite ToOutboundRewriteAction(this OutboundRewriteItem outboundRewriteItem)
        {
            if (outboundRewriteItem == null)
            {
                return(null);
            }

            var outboundRewriteAction = new OutboundRewrite()
            {
                Name  = outboundRewriteItem.Name,
                Value = outboundRewriteItem.Value.Value
            };

            var stopProcessingItem = outboundRewriteItem.BaseStopProcessingItem;

            GetStopProcessing(stopProcessingItem, outboundRewriteAction);

            return(outboundRewriteAction);
        }