public static Task <OperationResult> BranchWhenAsync(this OperationResult prevOperationResult, Predicate condition, AsyncAction branchAction) => condition.AssertNotNull(nameof(condition)) .Invoke() ? prevOperationResult .BranchAsync(branchAction) : Task.FromResult(prevOperationResult);
public static Task <OperationResult> BranchWhenAsync(this OperationResult prevOperationResult, bool condition, AsyncAction <OperationResult> branchAction) => condition ? prevOperationResult .BranchAsync(branchAction) : Task.FromResult(prevOperationResult);
public static Task <OperationResult <T> > BranchWhenAsync <T>(this OperationResult <T> prevOperationResult, Predicate <OperationResult <T> > condition, AsyncAction <OperationResult <T> > branchAction) => condition.AssertNotNull(nameof(condition)) .Invoke(prevOperationResult.AssertNotNull(nameof(prevOperationResult))) ? prevOperationResult .BranchAsync(branchAction) : Task.FromResult(prevOperationResult);
public static async Task <OperationResult <T> > BranchWhenAsync <T>(this OperationResult <T> prevOperationResult, AsyncPredicate <OperationResult <T> > condition, AsyncAction <OperationResult <T> > branchAction) => await condition.AssertNotNull(nameof(condition)) .Invoke(prevOperationResult.AssertNotNull(nameof(prevOperationResult))) ? await prevOperationResult .BranchAsync(branchAction) : prevOperationResult;
public static async Task <OperationResult> BranchWhenAsync(this OperationResult prevOperationResult, AsyncPredicate condition, AsyncAction branchAction) => await condition.AssertNotNull(nameof(condition)) .Invoke() ? await prevOperationResult .BranchAsync(branchAction) : prevOperationResult;