public void Add(ValidationLogData data) { foreach (ValidationResult mergedResult in data.GetResults()) { ValidationResult?activeResult = FindMatchingResult(mergedResult.ValidatedDefinition); if (activeResult == null) { activeResult = new ValidationResult(mergedResult.ValidatedDefinition); Add(activeResult.Value); } foreach (ValidationResultItem resultItem in mergedResult.Successes) { activeResult.Value.Successes.Add(resultItem); ++_successes; } foreach (ValidationResultItem resultItem in mergedResult.Failures) { activeResult.Value.Failures.Add(resultItem); ++_failures; } foreach (ValidationResultItem resultItem in mergedResult.Warnings) { activeResult.Value.Warnings.Add(resultItem); ++_warnings; } foreach (ValidationExceptionResultItem resultItem in mergedResult.Exceptions) { activeResult.Value.Exceptions.Add(resultItem); ++_exceptions; } } }
private static string BuildExceptionString(ValidationLogData data) { ArgumentUtility.CheckNotNull("data", data); var sb = new StringBuilder("Some parts of the mixin configuration could not be validated."); foreach (ValidationResult item in data.GetResults()) { if (item.TotalRulesExecuted != item.Successes.Count) { sb.AppendLine(); sb.AppendFormat( "{0} '{1}', {2} rules executed", item.ValidatedDefinition.GetType().Name, item.ValidatedDefinition.FullName, item.TotalRulesExecuted); sb.AppendLine(); string contextString = item.GetDefinitionContextPath(); if (contextString.Length > 0) { sb.AppendFormat("Context: " + contextString); sb.AppendLine(); } AppendResults(sb, "unexpected exceptions", item.Exceptions); AppendResults(sb, "warnings", item.Warnings); AppendResults(sb, "failures", item.Failures); } } return(sb.ToString()); }