RaspberryIO_26/Swan.Lite/Validators/ObjectValidationResult.cs
2019-12-08 19:54:52 +01:00

48 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace Swan.Validators {
/// <summary>
/// Defines a validation result containing all validation errors and their properties.
/// </summary>
public class ObjectValidationResult {
private readonly List<ValidationError> _errors = new List<ValidationError>();
/// <summary>
/// A list of errors.
/// </summary>
public IReadOnlyList<ValidationError> Errors => this._errors;
/// <summary>
/// <c>true</c> if there are no errors; otherwise, <c>false</c>.
/// </summary>
public Boolean IsValid => !this.Errors.Any();
/// <summary>
/// Adds an error with a specified property name.
/// </summary>
/// <param name="propertyName">The property name.</param>
/// <param name="errorMessage">The error message.</param>
public void Add(String propertyName, String errorMessage) => this._errors.Add(new ValidationError { ErrorMessage = errorMessage, PropertyName = propertyName });
/// <summary>
/// Defines a validation error.
/// </summary>
public class ValidationError {
/// <summary>
/// The property name.
/// </summary>
public String PropertyName {
get; internal set;
}
/// <summary>
/// The message error.
/// </summary>
public String ErrorMessage {
get; internal set;
}
}
}
}