public static Task <OperationResult <T> > RequireAsync <T>(this OperationResult <T> currentOperationResult, AsyncPredicate <OperationResult <T> > condition, AsyncFunc <OperationResult <T>, IOperationError> errorBuilder)
 => currentOperationResult
 .DoWhenAsync(async x => !await condition.AssertNotNull(nameof(condition))
              .Invoke(x),
              async x => OperationResult <T> .FromError(
                  await errorBuilder.AssertNotNull(nameof(errorBuilder))
                  .Invoke(x)));
 public static Task <OperationResult> RequireAsync(this OperationResult currentOperationResult, AsyncPredicate <OperationResult> condition, Func <OperationResult, IOperationError> errorBuilder)
 => currentOperationResult
 .DoWhenAsync(async(FunctionalResults.OperationResult x) => !await condition.AssertNotNull(nameof(condition))
              .Invoke((FunctionalResults.OperationResult)x),
              (FunctionalResults.OperationResult x) => (FunctionalResults.OperationResult)FunctionalResults.OperationResult.FromError(
                  errorBuilder.AssertNotNull(nameof(errorBuilder))
                  .Invoke((FunctionalResults.OperationResult)x)));
Ejemplo n.º 3
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));
Ejemplo n.º 4
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);
 public static Task <OperationResult <T> > ContinueOnFailureWhenAsync <T>(this OperationResult <T> prevOperationResult, AsyncPredicate <IOperationError> condition, AsyncFunc <IOperationError, OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhenAsync(async x => x.IsFailure && await condition.AssertNotNull(nameof(condition))
                    .Invoke(x.Error),
                    x => nextOperation.AssertNotNull(nameof(nextOperation))
                    .Invoke(x.Error));
 public static Task <OperationResult <T> > ContinueOnFailureWhenAsync <T>(this OperationResult <T> prevOperationResult, AsyncPredicate condition, Func <OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhenAsync(async x => x.IsFailure && await condition.AssertNotNull(nameof(condition))
                    .Invoke(),
                    nextOperation);
 public static Task <OperationResult> RequireOnSuccessAsync(this OperationResult currentOperationResult, AsyncPredicate condition, AsyncFunc <IOperationError> errorBuilder)
 => currentOperationResult
 .DoOnSuccessWhenAsync(async() => !await condition.AssertNotNull(nameof(condition))
                       .Invoke(),
                       async() => OperationResult.FromError(await errorBuilder.AssertNotNull(nameof(errorBuilder))
                                                            .Invoke()));
 public static Task <OperationResult <T> > RequireOnSuccessAsync <T>(this OperationResult <T> currentOperationResult, AsyncPredicate <T> condition, Func <T, IOperationError> errorBuilder)
 => currentOperationResult
 .DoOnSuccessWhenAsync(async x => !await condition.AssertNotNull(nameof(condition))
                       .Invoke(x),
                       x => (FunctionalResults.OperationResult)FunctionalResults.OperationResult.FromError(errorBuilder.AssertNotNull(nameof(errorBuilder))
                                                                                                           .Invoke(x)));
 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;
Ejemplo n.º 10
0
 public static Task <OperationResult <TPrimary> > DoOnSuccessWhenAsync <TPrimary>(this OperationResult <TPrimary> primaryOperationResult, AsyncPredicate condition, Func <OperationResult> secondaryOperation)
 => primaryOperationResult
 .DoWhenAsync(async x => x.IsSuccess && await condition.AssertNotNull(nameof(condition))
              .Invoke(),
              secondaryOperation);
Ejemplo n.º 11
0
 public static Task <OperationResult> BranchOnSuccessWhenAsync(this OperationResult currentOperationResult, AsyncPredicate condition, AsyncAction branchAction)
 => currentOperationResult
 .BranchWhenAsync(async x => x.IsSuccess && await condition.AssertNotNull(nameof(condition))
                  .Invoke(),
                  branchAction);
Ejemplo n.º 12
0
 public static Task <OperationResult <T> > BranchOnSuccessWhenAsync <T>(this OperationResult <T> currentOperationResult, AsyncPredicate <T> condition, AsyncAction <T> branchAction)
 => currentOperationResult
 .BranchWhenAsync(async x => x.IsSuccess && await condition.AssertNotNull(nameof(condition))
                  .Invoke(x.Value),
                  x => branchAction.AssertNotNull(nameof(branchAction))
                  .Invoke(x.Value));
Ejemplo n.º 13
0
 public static async Task <OperationResult <T> > ContinueWhenAsync <T>(this OperationResult <T> prevOperationResult, AsyncPredicate <OperationResult <T> > condition, AsyncFunc <OperationResult <T>, OperationResult <T> > nextOperation)
 => await prevOperationResult
 .ContinueWhenAsync(
     await condition.AssertNotNull(nameof(condition))
     .Invoke(prevOperationResult.AssertNotNull(nameof(prevOperationResult))),
     nextOperation);
Ejemplo n.º 14
0
 public static async Task <OperationResult> ContinueWhenAsync(this OperationResult prevOperationResult, AsyncPredicate condition, Func <OperationResult, OperationResult> nextOperation)
 => prevOperationResult
 .ContinueWhen(
     await condition.AssertNotNull(nameof(condition))
     .Invoke(),
     nextOperation);
 public static Task <OperationResult <T> > ContinueOnSuccessWhenAsync <T>(this OperationResult <T> prevOperationResult, AsyncPredicate <T> condition, AsyncFunc <T, OperationResult <T> > nextOperation)
 => prevOperationResult
 .ContinueWhenAsync(async x => x.IsSuccess && await condition.AssertNotNull(nameof(condition))
                    .Invoke(prevOperationResult.Value),
                    x => nextOperation.AssertNotNull(nameof(nextOperation))
                    .Invoke(prevOperationResult.Value));
Ejemplo n.º 16
0
 public static Task <OperationResult <TPrimary> > DoOnSuccessWhenAsync <TPrimary, TSecondary>(this OperationResult <TPrimary> primaryOperationResult, AsyncPredicate <TPrimary> condition, AsyncFunc <TPrimary, OperationResult <TSecondary> > secondaryOperation)
 => primaryOperationResult
 .DoWhenAsync(async x => x.IsSuccess && await condition.AssertNotNull(nameof(condition))
              .Invoke(x.Value),
              x => secondaryOperation.AssertNotNull(nameof(secondaryOperation))
              .Invoke(x.Value));
 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);
 public static async Task <OperationResult <T> > BranchWhenAsync <T>(this OperationResult <T> prevOperationResult, AsyncPredicate condition, Action branchAction)
 => await condition.AssertNotNull(nameof(condition))
 .Invoke()
         ? prevOperationResult
 .Branch(branchAction)
         : prevOperationResult;