private TisValidationMethodResult ExecuteValidationMethod( TisValidationMethod validationMethod, object validationsSource, object validationsTarget, List <ITisValidationContext> validationContexts) { TisValidationMethodDetailedInfo detailedInfo = null; ValidationStatus validationStatus = ValidationStatus.Unknown; object[] validationMethodParameters = null; try { validationMethodParameters = ObtainValidationMethodParameters(validationMethod, validationsTarget, validationContexts); if (validationMethodParameters == null) { // Default method parameters validationMethodParameters = new object[validationMethod.MethodSignature.Params.Length]; } bool validParams = ValidateMethodParameters(validationMethod.MethodSignature, validationMethodParameters); if (validParams) { object methodReturn = validationMethod.Method.Invoke(validationsSource, validationMethodParameters); if (methodReturn is ValidationStatus) { validationStatus = (ValidationStatus)methodReturn; } else { if (methodReturn is TisValidationStatusProvider) { validationStatus = (methodReturn as TisValidationStatusProvider).Status; detailedInfo = (methodReturn as TisValidationStatusProvider).DetailedInfo; } else { Log.WriteWarning("Validation method [{0}] does not return validation status ", validationMethod.Name); } } } else { Log.WriteError("Validation method [{0}] has invalid parameter(s)", validationMethod.Name); } } catch (Exception exc) { Log.WriteException(exc); } return(new TisValidationMethodResult(validationStatus, validationMethodParameters, detailedInfo)); }
public TisValidationMethodResult( ValidationStatus status, object[] parameters, TisValidationMethodDetailedInfo detailedInfo) { m_status = status; m_parameters = parameters; m_detailedInfo = detailedInfo; }
public TisValidationStatusProvider( ValidationStatus validationStatus, string message, string details, ValidationShowDetailedInfo showDetailedInfo) { m_status = validationStatus; m_detailedInfo = new TisValidationMethodDetailedInfo(message, details, showDetailedInfo); }