/// <summary>
/// Sets the business rule validation result.
/// </summary>
/// <param name="validationResult">The business rule validation result.</param>
/// <exception cref="ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
protected void SetBusinessRuleValidationResult(IBusinessRuleValidationResult validationResult)
{
Argument.IsNotNull("validationResult", validationResult);
if (string.IsNullOrEmpty(validationResult.Message))
{
return;
}
var previousValidations = _internalValidationContext.GetBusinessRuleValidations();
// First, check if the same error already exists
bool alreadyExists = (from previousFieldValidation in previousValidations
where string.Compare(previousFieldValidation.Message, validationResult.Message) == 0
select previousFieldValidation).Any();
if (alreadyExists)
{
return;
}
_internalValidationContext.AddBusinessRuleValidationResult(validationResult);
if (!IsValidating)
{
switch (validationResult.ValidationResultType)
{
case ValidationResultType.Warning:
NotifyWarningsChanged(string.Empty, true);
break;
case ValidationResultType.Error:
NotifyErrorsChanged(string.Empty, true);
break;
}
}
}