public override bool Equals(object obj) { DomainValidationError domainValidationError = obj as DomainValidationError; if (domainValidationError == null) { return(false); } if (PropertyName != domainValidationError.PropertyName) { return(false); } if (Message != domainValidationError.Message) { return(false); } return(true); }
/// <summary> /// Verifies a set of invariants on a particular domain object. /// </summary> /// <param name="invariants">List of invariants to check.</param> /// <param name="domainObjectType">The type of domain object being validated.</param> /// <param name="clientErrorCode">A client-specific error code that provides additional details about the error.</param> /// <exception cref="InvariantException">Thrown if any of the invariants fail. Domain validation error(s) in the exception list /// the specific failures.</exception> public static void InvariantCheck(IList <Invariant> invariants, string domainObjectType, ClientErrorCode clientErrorCode = ClientErrorCode.NotSpecified) { InvariantException exception = null; //Check all of the invariants and add DomainValidationErrors if they fail. foreach (Invariant invariant in invariants.Where(invariant => !invariant.Condition)) { var domainValidationError = new DomainValidationError(invariant.PropertyName, invariant.Message); if (exception == null) { exception = new InvariantException(domainValidationError, String.Format("There was a problem validating the {0}.", domainObjectType), clientErrorCode); } else { exception.Add(domainValidationError); } } if (exception != null) { throw exception; } }