/// <summary> /// Method so inheriting classes may add extra internal logic during the InternalExecute stage. /// </summary> internal override void SafeInternalExecute() { var errorCollection = ViewModel.ErrorCollection; var hasExistingErrors = errorCollection != null && errorCollection.Count > 0; Validate(_validationResults); CanComplete = _validationResults.IsValid; if (!CanComplete && hasExistingErrors) { var validationMessages = _validationResults.InternalGetValidations(); var severity = ValidationSeverity; var errors = errorCollection.Where(x => x.Severity < severity).ToList(); CanComplete = !validationMessages.Except(errors).Any(); } if (CanComplete) { base.SafeInternalExecute(); } }