public OutboundRuleItem(Item innerItem) : base(innerItem) { _BaseRuleItem = new BaseRuleItem(innerItem); _OutboundPreconditionItem = new OutboundPreconditionItem(innerItem); _OutboundMatchItem = new OutboundMatchItem(innerItem); }
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 }; } } }