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()); }
public SerializableValidationLogData(ValidationLogData validationLogData) { ArgumentUtility.CheckNotNull("validationLogData", validationLogData); _NumberOfFailures = validationLogData.GetNumberOfFailures(); _numberOfRulesExecuted = validationLogData.GetNumberOfRulesExecuted(); _numberOfSuccesses = validationLogData.GetNumberOfSuccesses(); _numberOfUnexpectedExceptions = validationLogData.GetNumberOfUnexpectedExceptions(); _numberOfWarnings = validationLogData.GetNumberOfWarnings(); }
/// <summary> /// Initializes a new instance of the <see cref="ValidationException"/> class and creates a descriptive message from the validation log. /// </summary> /// <param name="validationLogData">The validation log data.</param> /// <exception cref="ArgumentNullException">The log is empty.</exception> public ValidationException(ValidationLogData validationLogData) : base(BuildExceptionString(validationLogData)) { _serializableValidationLogData = validationLogData.MakeSerializable(); }