public Outcome Log(Group group, Status status, Vector vector, string message, params object[] args)
 {
     Outcome outcome = new Outcome(group, status, vector, string.Format(message, args), this.nesting);
     
     Add(outcome);
     return outcome;
 }
 public Outcome Start(Group group, Vector vector = null)
 {
     Outcome outcome = new Outcome(group, Status.Start, vector, null, this.nesting);
     Add(outcome);
     nesting++;
     return outcome;
 }
 public Outcome End(Group group)
 {
     nesting--;
     Outcome outcome = new Outcome(group, Status.End, null, null, this.nesting);
     Add(outcome);
     
     return outcome;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ValidationException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
 /// </summary>
 /// <param name="message">The error message that explains the reason for the exception.</param>
 /// <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. </param>
 /// <param name="outcome">The <see cref="Outcome"/>.</param>
 public ValidationException(string message, Exception innerException, Outcome outcome)
     : base(message, innerException)
 {
     this.Outcome = outcome;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ValidationException"/> class with a specified error message.
 /// </summary>
 /// <param name="message">The message that describes the error.</param>
 /// <param name="outcome">The <see cref="Outcome"/>.</param>
 public ValidationException(string message, Outcome outcome)
     : base(message)
 {
     this.Outcome = outcome;
 }
        public void Add(Outcome outcome)
        {

            Report.Add(outcome);
        }
 public ValidationException(Outcome outcome) 
 {
     this.Outcome = outcome;
 }