/// <summary> /// Verification for VerifiableMemberContext /// </summary> /// <param name="context"></param> /// <returns></returns> internal override CorrectVerifyVal Valid(VerifiableMemberContext context) { var value = GetValueFrom(context); if (!IsActivate(context, value)) { return(CorrectVerifyVal.Ignore); } var verifyVal = CreateVerifyVal(); if (context is null) { UpdateVal(verifyVal, value); } else { var regex = _regexFunc(context.GetParentInstance <T>()); if (regex is null || value is null || !regex.IsMatch((string)value)) { UpdateVal(verifyVal, value, regex?.ToString()); } } return(verifyVal); }
/// <summary> /// Is activate, This method is only applicable to 'Verify'. /// </summary> /// <param name="context"></param> /// <param name="value"></param> /// <returns></returns> protected bool IsActivate(VerifiableMemberContext context, object value) { if (WithActivationConditions && ActivationConditions3 is not null && context.HasParentContext()) { return(ActivationConditions3.Invoke(context.GetParentInstance(), value)); } if (WithActivationConditions && ActivationConditions2 is not null) { return(ActivationConditions2.Invoke(value)); } return(true); }