public static OperationResult ContinueOnSuccessWhen(this OperationResult prevOperationResult, Predicate condition, Func <OperationResult> nextOperation)
 => prevOperationResult
 .ContinueWhen(x => x.IsSuccess && condition.AssertNotNull(nameof(condition))
               .Invoke(),
               nextOperation);
示例#2
0
 public static Task <OperationResult> BranchOnFailureWhenAsync(this OperationResult currentOperationResult, bool condition, AsyncAction branchAction)
 => currentOperationResult
 .BranchWhenAsync(x => x.IsFailure && condition,
                  branchAction);
示例#3
0
 public static Task <OperationResult> BranchOnFailureWhenAsync(this OperationResult currentOperationResult, Predicate condition, AsyncAction <IOperationError> branchAction)
 => currentOperationResult
 .BranchWhenAsync(x => x.IsFailure && condition.AssertNotNull(nameof(condition))
                  .Invoke(),
                  x => branchAction.AssertNotNull(nameof(branchAction))
                  .Invoke(x.Error));
示例#4
0
 public static Task <OperationResult <T> > BranchOnFailureAsync <T>(this OperationResult <T> currentOperationResult, AsyncAction <IOperationError> branchAction)
 => currentOperationResult
 .BranchWhenAsync(x => x.IsFailure,
                  x => branchAction.AssertNotNull(nameof(branchAction))
                  .Invoke(x.Error));
示例#5
0
 public static OperationResult <T> BranchOnFailureWhen <T>(this OperationResult <T> currentOperationResult, Predicate <IOperationError> condition, Action <IOperationError> branchAction)
 => currentOperationResult
 .BranchWhen(x => x.IsFailure && condition.AssertNotNull(nameof(condition))
             .Invoke(x.Error),
             x => branchAction.AssertNotNull(nameof(branchAction))
             .Invoke(x.Error));
 public static OperationResult ContinueOnSuccessWhen(this OperationResult prevOperationResult, bool condition, Func <OperationResult> nextOperation)
 => prevOperationResult
 .ContinueWhen(x => x.IsSuccess && condition,
               nextOperation);
 public static Task <OperationResult <T> > ContinueOnSuccessWhenAsync <T>(this OperationResult <T> prevOperationResult, bool condition, AsyncFunc <OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhenAsync(x => x.IsSuccess && condition,
                    nextOperation);
示例#8
0
 public static OperationResult BranchOnFailureWhen(this OperationResult currentOperationResult, bool condition, Action <IOperationError> branchAction)
 => currentOperationResult
 .BranchWhen(x => x.IsFailure && condition,
             x => branchAction.AssertNotNull(nameof(branchAction))
             .Invoke(x.Error));
示例#9
0
 public static Task <OperationResult <T> > BranchOnFailureWhenAsync <T>(this OperationResult <T> currentOperationResult, AsyncPredicate condition, Action branchAction)
 => currentOperationResult
 .BranchWhenAsync(async x => x.IsFailure && await condition.AssertNotNull(nameof(condition))
                  .Invoke(),
                  branchAction);
示例#10
0
 public static Task <OperationResult <T> > ContinueOnFailureAsync <T>(this OperationResult <T> prevOperationResult, AsyncFunc <object, OperationResult <T> > recoveryOperation)
 => prevOperationResult
 .ContinueWhenAsync(x => x.IsFailure,
                    x => recoveryOperation.AssertNotNull(nameof(recoveryOperation))
                    .Invoke(prevOperationResult.Error));
示例#11
0
 public static OperationResult ContinueOnFailure(this OperationResult prevOperationResult, Func <OperationResult> recoveryOperation)
 => prevOperationResult
 .ContinueWhen(x => x.IsFailure,
               recoveryOperation);
示例#12
0
 public static Task <OperationResult <T> > ContinueOnFailureAsync <T>(this OperationResult <T> prevOperationResult, AsyncFunc <OperationResult <T> > recoveryOperation)
 => prevOperationResult
 .ContinueWhenAsync(x => x.IsFailure,
                    recoveryOperation);
示例#13
0
 public static OperationResult ContinueOnFailure <T>(this OperationResult <T> prevOperationResult, Func <object, OperationResult> recoveryOperation)
 => prevOperationResult
 .ContinueWhen(x => x.IsFailure,
               x => recoveryOperation.AssertNotNull(nameof(recoveryOperation))
               .Invoke(prevOperationResult.Error));
示例#14
0
 public static OperationResult BranchOnFailure(this OperationResult currentOperationResult, Action branchAction)
 => currentOperationResult
 .BranchWhen(x => x.IsFailure,
             branchAction);
 public static OperationResult <T> ContinueOnSuccessWhen <T>(this OperationResult <T> prevOperationResult, bool condition, Func <T, OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhen(x => x.IsSuccess && condition,
               x => nextOperation.AssertNotNull(nameof(nextOperation))
               .Invoke(prevOperationResult.Value));
示例#16
0
 public static Task <OperationResult <T> > BranchOnFailureWhenAsync <T>(this OperationResult <T> currentOperationResult, AsyncPredicate <IOperationError> condition, AsyncAction <IOperationError> branchAction)
 => currentOperationResult
 .BranchWhenAsync(async x => x.IsFailure && await condition.AssertNotNull(nameof(condition))
                  .Invoke(x.Error),
                  x => branchAction.AssertNotNull(nameof(branchAction))
                  .Invoke(x.Error));
 public static OperationResult <T> ContinueOnSuccessWhen <T>(this OperationResult <T> prevOperationResult, Predicate <T> condition, Func <OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhen(x => x.IsSuccess && condition.AssertNotNull(nameof(condition))
               .Invoke(prevOperationResult.Value),
               nextOperation);
示例#18
0
 public static OperationResult <T> BranchOnFailureWhen <T>(this OperationResult <T> currentOperationResult, Predicate condition, Action branchAction)
 => currentOperationResult
 .BranchWhen(x => x.IsFailure && condition.AssertNotNull(nameof(condition))
             .Invoke(),
             branchAction);
 public static Task <OperationResult> ContinueOnSuccessWhenAsync(this OperationResult prevOperationResult, AsyncPredicate condition, AsyncFunc <OperationResult> nextOperation)
 => prevOperationResult
 .ContinueWhenAsync(async x => x.IsSuccess && await condition.AssertNotNull(nameof(condition))
                    .Invoke(),
                    nextOperation);
示例#20
0
 public static OperationResult BranchOnFailureWhen(this OperationResult currentOperationResult, bool condition, Action branchAction)
 => currentOperationResult
 .BranchWhen(x => x.IsFailure && condition,
             branchAction);
 public static Task <OperationResult <T> > ContinueOnSuccessWhenAsync <T>(this OperationResult <T> prevOperationResult, Predicate condition, AsyncFunc <T, OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhenAsync(x => x.IsSuccess && condition.AssertNotNull(nameof(condition))
                    .Invoke(),
                    x => nextOperation.AssertNotNull(nameof(nextOperation))
                    .Invoke(prevOperationResult.Value));
示例#22
0
 public static Task <OperationResult <T> > BranchOnFailureAsync <T>(this OperationResult <T> currentOperationResult, AsyncAction branchAction)
 => currentOperationResult
 .BranchWhenAsync(x => x.IsFailure,
                  branchAction);