Пример #1
0
		public OutboundRuleItem(Item innerItem)
			: base(innerItem)
		{
			_BaseRuleItem = new BaseRuleItem(innerItem);
			_OutboundPreconditionItem = new OutboundPreconditionItem(innerItem);
			_OutboundMatchItem = new OutboundMatchItem(innerItem);
		}
Пример #2
0
        private static void SetOutboundMatch(OutboundMatchItem outboundMatchItem, IOutboundMatch outboundMatch)
        {
            SetBaseMatch(outboundMatchItem.BaseMatchItem, outboundMatch);

            var scopeTypeItem = outboundMatchItem.MatchScopeItem.MatchScopeType.TargetItem;
            if (scopeTypeItem != null)
            {
                var scopeTypeItemId = scopeTypeItem.ID;
                if (scopeTypeItemId.Equals(new ID(Constants.MatchScope_Response_ItemId)))
                {
                    outboundMatch.MatchingScopeType = ScopeType.Response;
                } 
                else if (scopeTypeItemId.Equals(new ID(Constants.MatchScope_ServerVariables_ItemId))) 
                {
                    outboundMatch.MatchingScopeType = ScopeType.ServerVariables;
                }

            }

            var outboundMatchScopeItem = outboundMatchItem.OutboundMatchScopeItem.MatchScope.TargetItem;
            if (outboundMatchScopeItem != null)
            {
                if (outboundMatchScopeItem.TemplateID.Equals(new ID(MatchResponseTagsItem.TemplateId)))
                {

                    var matchTags = new MatchResponseTagsItem(outboundMatchScopeItem).MatchTheContentWithin.TargetIDs
                        .Select(i => outboundMatchItem.InnerItem.Database.GetItem(i))
                        .Select(i => new MatchTagItem(i))
                        .Where(i => i != null)
                        .Select(i => new MatchTag { Tag = i.Tag.Value, Attribute = i.Attribute.Value})
                        .ToList();

                    outboundMatch.OutboundMatchScope = new MatchResponseTags()
                    {
                        MatchTheContentWithin = matchTags
                    };
                }
                else if (outboundMatchScopeItem.TemplateID.Equals(new ID(MatchServerVariableItem.TemplateId)))
                {
                    var serverVariableItem = new MatchServerVariableItem(outboundMatchScopeItem);
                    outboundMatch.OutboundMatchScope = new MatchServerVariable
                    {
                        ServerVariableName = serverVariableItem.ServerVariableName.Value
                    };
                }
            }

        }