public async Task <TResult> WithAsync <TCriterion>(TCriterion criterion) where TCriterion : ICriterion { return(await _factory .Get <TCriterion, TResult>() .Ask(criterion)); }