private object[] ObtainValidationMethodParameters( TisValidationMethod validationMethod, object validationsTarget, List <ITisValidationContext> validationContexts) { object[] validationMethodParameters = null; bool handled = false; foreach (ITisValidationContext validationContext in validationContexts) { if (validationContext.ValidationMethodParametersProvider != null) { validationMethodParameters = validationContext.ValidationMethodParametersProvider.ObtainValidationMethodParameters( validationMethod, validationsTarget, ref handled); if (handled) { return(validationMethodParameters); } } } return(validationMethodParameters); }
public override bool Accepts( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { if (IsInclusive) { foreach (TisValidationsResultFilter filter in m_filters) { if (!filter.Accepts(validationMethod, validationMethodResult)) { return(false); } } return(true); } else { foreach (TisValidationsResultFilter filter in m_filters) { if (filter.Accepts(validationMethod, validationMethodResult)) { return(true); } } return(false); } }
protected override bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { m_validationMethodToCheck = validationMethod; if (m_methodParametersArray.Count != validationMethodResult.Parameters.Length) { return(false); } for (int i = 0; i < m_methodParametersArray.Count; i++) { object parameterToCheck = m_methodParametersArray[i]; object parameterData = validationMethodResult.Parameters[i]; if (parameterData != null) { parameterToCheck = parameterData.GetType(); } if (!Match(parameterToCheck, i)) { return(false); } } return(true); }
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)); }
private void FillContainer(IEnumerable <Type> validationProvidersData) { foreach (Type validationProviderData in validationProvidersData) { if (typeof(ITisSupportValidation).IsAssignableFrom(validationProviderData)) { MethodInfo[] miValidations = validationProviderData.GetMethods(BindingFlags.Instance | BindingFlags.Public); foreach (MethodInfo miValidation in miValidations) { ValidationMethodAttribute validationAttribute = (ValidationMethodAttribute)ReflectionUtil.GetAttribute(miValidation, typeof(ValidationMethodAttribute)); if (validationAttribute != null) { TisValidationMethod validationMethod = new TisValidationMethod(miValidation, validationAttribute.ValidationOrder, validationAttribute.IsCustomCodeProvider); Add(validationMethod); } } Sort(); } else { Log.WriteInfo("Validation provider data does not implement [ITisSupportValidation] interface"); } } }
public virtual bool Accepts( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { if (m_isInclusive) { return(Matches(validationMethod, validationMethodResult)); } else { return(!Matches(validationMethod, validationMethodResult)); } }
protected override bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { if (base.Matches(validationMethod, validationMethodResult)) { if (m_parameterValues.Count == validationMethodResult.Parameters.Length) { for (int i = 0; i < validationMethodResult.Parameters.Length; i++) { if (m_parameterValues[i] != null && !validationMethodResult.Parameters[i].Equals(m_parameterValues[i])) { return(false); } } } return(true); } return(false); }
private bool IsValidationConfirmed( TisValidationMethod validationMethod, List <ITisValidationContext> validationContexts) { bool confirmValidationMethod = true; bool handled = false; foreach (ITisValidationContext validationContext in validationContexts) { if (validationContext.ValidationMethodConfirmatory != null) { confirmValidationMethod = validationContext.ValidationMethodConfirmatory.ConfirmValidationMethod(validationMethod, ref handled); if (handled) { return(confirmValidationMethod); } } } return(confirmValidationMethod); }
protected override bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { return(CompositeFilter.Accepts(validationMethod, validationMethodResult)); }
protected virtual bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { return(true); }
protected override bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { return(m_statusToFilter.Contains(validationMethodResult.Status)); }
protected override bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { return(validationMethod.IsCustomCodeProvider); }
protected override bool Matches( TisValidationMethod validationMethod, TisValidationMethodResult validationMethodResult) { return(StringUtil.CompareIgnoreCase(validationMethod.FullName, m_methodName)); }