public GroupRule( RouterGroupConfiguration configuration, IExpressionParser expressionParser) { if (configuration.Disabled) { return; } ConditionLogic = configuration.ConditionLogic; var rules = new List <Rule>(); if (configuration.Conditions != null) { rules.AddRange(configuration.Conditions .Where(c => !c.Disabled) .Select(c => CreateConditionRule(c, expressionParser))); } if (configuration.Groups != null) { rules.AddRange( configuration.Groups .Where(g => !g.Disabled) .Select(g => new GroupRule(g, expressionParser))); } Rules = rules.ToArray(); }
public GroupDrawing( DrawingElement drawing, RouterGroupConfiguration groupConfiguration) : base(drawing, "router_group", groupConfiguration.Disabled) { if ((groupConfiguration.Conditions == null || groupConfiguration.Conditions.Length == 0) && (groupConfiguration.Groups == null || groupConfiguration.Groups.Length == 0)) { AddDetails(new List <string> { "Always" }, null, groupConfiguration.Disabled ? "disabled" : string.Empty); return; } var details = new List <string> { "If " + groupConfiguration.ConditionLogic.ToString().ToLower() + " of" }; if (groupConfiguration.Conditions != null && groupConfiguration.Conditions.Length > 0) { foreach (var rule in groupConfiguration.Conditions) { if (!rule.Disabled) { if (rule.Negate) { details.Add("Not " + rule.Condition); } else { details.Add(rule.Condition); } } } } AddDetails(details, null, groupConfiguration.Disabled ? "disabled" : string.Empty); if (groupConfiguration.Groups != null && groupConfiguration.Groups.Length > 0) { foreach (var group in groupConfiguration.Groups) { AddChild(new GroupDrawing(drawing, group)); } } }