diff --git a/src/ConfigCatClient/Evaluation/EvaluateLogHelper.cs b/src/ConfigCatClient/Evaluation/EvaluateLogHelper.cs index 30a90c8c..c79f9b66 100644 --- a/src/ConfigCatClient/Evaluation/EvaluateLogHelper.cs +++ b/src/ConfigCatClient/Evaluation/EvaluateLogHelper.cs @@ -203,11 +203,10 @@ private static IndentedTextBuilder AppendPercentageOptions(this IndentedTextBuil private static IndentedTextBuilder AppendTargetingRuleThenPart(this IndentedTextBuilder builder, TargetingRule targetingRule, bool newLine, bool appendPercentageOptions = false, string? percentageOptionsAttribute = null) { - var percentageOptions = targetingRule.PercentageOptions; - (newLine ? builder.NewLine() : builder.Append(" ")) .Append("THEN"); + var percentageOptions = targetingRule.PercentageOptions; if (percentageOptions is not { Length: > 0 }) { return builder.Append($" '{targetingRule.SimpleValue?.Value ?? default}'"); diff --git a/src/ConfigCatClient/Evaluation/RolloutEvaluator.cs b/src/ConfigCatClient/Evaluation/RolloutEvaluator.cs index 7dcb62de..68093d7c 100644 --- a/src/ConfigCatClient/Evaluation/RolloutEvaluator.cs +++ b/src/ConfigCatClient/Evaluation/RolloutEvaluator.cs @@ -62,7 +62,7 @@ public EvaluateResult Evaluate(T defaultValue, ref EvaluateContext context, [ if (context.Setting.SettingType != Setting.UnknownType && context.Setting.SettingType != expectedSettingType) { throw new InvalidOperationException( - "The type of a setting must match the type of the specified default value " + "The type of a setting must match the type of the specified default value. " + $"Setting's type was {context.Setting.SettingType} but the default value's type was {typeof(T)}. " + $"Please use a default value which corresponds to the setting type {context.Setting.SettingType}."); } @@ -159,13 +159,10 @@ private bool TryEvaluateTargetingRules(TargetingRule[] targetingRules, ref Evalu logBuilder?.DecreaseIndent(); return true; } - else - { - logBuilder? - .NewLine(TargetingRuleIgnoredMessage) - .DecreaseIndent(); - continue; - } + + logBuilder? + .NewLine(TargetingRuleIgnoredMessage) + .DecreaseIndent(); } result = default; @@ -237,14 +234,14 @@ private bool TryEvaluatePercentageOptions(PercentageOption[] percentageOptions, continue; } - var percentageOptionValue = percentageOption.Value.GetValue(context.Setting.SettingType, throwIfInvalid: false); + var percentageOptionValue = percentageOption.Value.GetValue(throwIfInvalid: false); logBuilder?.NewLine().Append($"- Hash value {hashValue} selects % option {i + 1} ({percentageOption.Percentage}%), '{percentageOptionValue ?? EvaluateLogHelper.InvalidValuePlaceholder}'."); result = new EvaluateResult(percentageOption, matchedTargetingRule: targetingRule, matchedPercentageOption: percentageOption); return true; } - throw new InvalidOperationException("Sum of percentage option percentages are less than 100)."); + throw new InvalidOperationException("Sum of percentage option percentages are less than 100."); } private bool EvaluateConditions(TCondition[] conditions, TargetingRule? targetingRule, string contextSalt, ref EvaluateContext context, out string? error) @@ -301,12 +298,15 @@ private bool EvaluateConditions(TCondition[] conditions, TargetingRu throw new InvalidOperationException(); // execution should never get here } - if (targetingRule is null || conditions.Length > 1) + if (logBuilder is not null) { - logBuilder?.AppendConditionConsequence(conditionResult); - } + if (targetingRule is null || conditions.Length > 1) + { + logBuilder.AppendConditionConsequence(conditionResult); + } - logBuilder?.DecreaseIndent(); + logBuilder.DecreaseIndent(); + } if (!conditionResult) {