public static Func <Task <RuleResult> > ToTaskFunc(this AsyncRuleValidateAction action) { if (action == null) { return(null); } return(() => { var tcs = new TaskCompletionSource <RuleResult>(); try { action(result => tcs.TrySetResult(result)); } catch (Exception e) { if (!tcs.TrySetException(e)) { throw; } } return tcs.Task; }); }
public IAsyncValidationRule AddAsyncRule(IEnumerable<Expression<Func<object>>> properties, AsyncRuleValidateAction validateAction) { return AddAsyncRule(properties, validateAction.ToTaskFunc()); }
public IAsyncValidationRule AddAsyncRule(Expression<Func<object>> property1Expression, Expression<Func<object>> property2Expression, AsyncRuleValidateAction validateAction) { return AddAsyncRule(property1Expression, property2Expression, validateAction.ToTaskFunc()); }
public IAsyncValidationRule AddAsyncRule(AsyncRuleValidateAction validateAction) { return AddAsyncRule(validateAction.ToTaskFunc()); }
public IAsyncValidationRule AddAsyncRule(object target, AsyncRuleValidateAction validateAction) { return AddAsyncRule(target, validateAction.ToTaskFunc()); }
public IAsyncValidationRule AddAsyncRule(IEnumerable <Expression <Func <object> > > properties, AsyncRuleValidateAction validateAction) { return(AddAsyncRule(properties, validateAction.ToTaskFunc())); }
public IAsyncValidationRule AddAsyncRule(Expression <Func <object> > property1Expression, Expression <Func <object> > property2Expression, AsyncRuleValidateAction validateAction) { return(AddAsyncRule(property1Expression, property2Expression, validateAction.ToTaskFunc())); }
public IAsyncValidationRule AddAsyncRule(AsyncRuleValidateAction validateAction) { return(AddAsyncRule(validateAction.ToTaskFunc())); }
public IAsyncValidationRule AddAsyncRule(object target, AsyncRuleValidateAction validateAction) { return(AddAsyncRule(target, validateAction.ToTaskFunc())); }