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;
                }
            }
        }
Beispiel #2
0
        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();
        }
Beispiel #4
0
 /// <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();
 }