public static OperationResult Require(this OperationResult currentOperationResult, Predicate condition, Func <IOperationError> errorBuilder)
 => currentOperationResult
 .DoWhen(() => !condition.AssertNotNull(nameof(condition))
         .Invoke(),
         () => OperationResult.FromError(
             errorBuilder.AssertNotNull(nameof(errorBuilder))
             .Invoke()));
 public static OperationResult <T> Require <T>(this OperationResult <T> currentOperationResult, Predicate <OperationResult <T> > condition, Func <OperationResult <T>, IOperationError> errorBuilder)
 => currentOperationResult
 .DoWhen(x => !condition.AssertNotNull(nameof(condition))
         .Invoke(x),
         x => OperationResult <T> .FromError(
             errorBuilder.AssertNotNull(nameof(errorBuilder))
             .Invoke(x)));
 public static OperationResult DoOnSuccess(this OperationResult primaryOperationResult, Func <OperationResult> secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsSuccess,
         secondaryOperation);
 public static OperationResult <TPrimary> DoOnSuccess <TPrimary, TSecondary>(this OperationResult <TPrimary> primaryOperationResult, Func <TPrimary, OperationResult <TSecondary> > secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsSuccess,
         x => secondaryOperation.AssertNotNull(nameof(secondaryOperation))
         .Invoke(x.Value));
 public static OperationResult <TPrimary> DoOnSuccess <TPrimary, TSecondary>(this OperationResult <TPrimary> primaryOperationResult, Func <OperationResult <TSecondary> > secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsSuccess,
         secondaryOperation);
Ejemplo n.º 6
0
 public static OperationResult <TPrimary> DoOnSuccessWhen <TPrimary, TSecondary>(this OperationResult <TPrimary> primaryOperationResult, Predicate <TPrimary> condition, Func <OperationResult <TSecondary> > secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsSuccess && condition.AssertNotNull(nameof(condition))
         .Invoke(x.Value),
         secondaryOperation);
Ejemplo n.º 7
0
 public static OperationResult DoOnSuccessWhen(this OperationResult primaryOperationResult, bool condition, Func <OperationResult> secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsSuccess && condition,
         secondaryOperation);
Ejemplo n.º 8
0
 public static OperationResult DoOnSuccessWhen(this OperationResult primaryOperationResult, Predicate condition, Func <OperationResult> secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsSuccess && condition.AssertNotNull(nameof(condition))
         .Invoke(),
         secondaryOperation);
 public static OperationResult <T> Require <T>(this OperationResult <T> currentOperationResult, bool condition, Func <IOperationError> errorBuilder)
 => currentOperationResult
 .DoWhen(!condition,
         () => OperationResult <T> .FromError(
             errorBuilder.AssertNotNull(nameof(errorBuilder))
             .Invoke()));
 public static OperationResult Require(this OperationResult currentOperationResult, bool condition, Func <OperationResult, IOperationError> errorBuilder)
 => currentOperationResult
 .DoWhen(!condition,
         x => OperationResult.FromError(
             errorBuilder.AssertNotNull(nameof(errorBuilder))
             .Invoke(x)));
 public static OperationResult DoOnFailure(this OperationResult primaryOperationResult, Func <OperationResult> secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsFailure,
         secondaryOperation);
 public static OperationResult <TPrimary> DoOnFailure <TPrimary, TSecondary>(this OperationResult <TPrimary> primaryOperationResult, Func <IOperationError, OperationResult <TSecondary> > secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsFailure,
         x => secondaryOperation.AssertNotNull(nameof(secondaryOperation))
         .Invoke(x.Error));
 public static OperationResult <TPrimary> DoOnFailure <TPrimary, TSecondary>(this OperationResult <TPrimary> primaryOperationResult, Func <OperationResult <TSecondary> > secondaryOperation)
 => primaryOperationResult
 .DoWhen(x => x.IsFailure,
         secondaryOperation);