public ApplyElementProcessor( [NotNull] IConfigurationExpressionEvaluator configurationExpressionEvaluator, [NotNull] ITokenUsageTracker tokenUsageTracker) : base(tokenUsageTracker) { if (configurationExpressionEvaluator == null) { throw new ArgumentNullException(nameof(configurationExpressionEvaluator)); } _configurationExpressionEvaluator = configurationExpressionEvaluator; }
public ApplyWhenAttributeProcessor( [NotNull] IConfigurationExpressionEvaluator evaluator, [NotNull] ITokenUsageTracker tokenUsageTracker) { if (evaluator == null) { throw new ArgumentNullException(nameof(evaluator)); } if (tokenUsageTracker == null) { throw new ArgumentNullException(nameof(tokenUsageTracker)); } _evaluator = evaluator; _tokenUsageTracker = tokenUsageTracker; }
protected ExpressionEvaluationResults EvaluateCondition( [NotNull] XElement element, [NotNull] IConfiguration configuration, [NotNull] IConfigurationExpressionEvaluator configurationExpressionEvaluator) { if (element == null) { throw new ArgumentNullException(nameof(element)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (configurationExpressionEvaluator == null) { throw new ArgumentNullException(nameof(configurationExpressionEvaluator)); } string expression = null; var conditionAttribute = element.Attribute(XName.Get(ConditionAttributeName, string.Empty)); if (conditionAttribute != null) { expression = conditionAttribute.Value; } ExpressionEvaluationResults evaluationResults = configurationExpressionEvaluator.Evaluate(configuration.ConfigurationName, expression, element.Name); foreach (var usedToken in evaluationResults.UsedTokens) { if (configuration.Contains(usedToken)) { _tokenUsageTracker.OnTokenUsed(configuration.ConfigurationName, usedToken); } else { _tokenUsageTracker.OnTokenNotRecognised(configuration.ConfigurationName, usedToken); } } return(evaluationResults); }