public static OperationResult <TNext> ContinueOnSuccess <TPrev, TNext>(this OperationResult <TPrev> prevOperationResult, Func <TPrev, OperationResult <TNext> > nextOperation) => prevOperationResult.AssertNotNull(nameof(prevOperationResult)) .IsSuccess ? prevOperationResult .Continue(x => nextOperation.AssertNotNull(nameof(nextOperation)) .Invoke(prevOperationResult.Value)) : prevOperationResult.AsFailure <TNext>();
public static OperationResult ContinueWhen(this OperationResult prevOperationResult, bool condition, Func <OperationResult> nextOperation) => condition ? prevOperationResult .Continue(nextOperation) : prevOperationResult;
public static OperationResult <T> ContinueWhen <T>(this OperationResult <T> prevOperationResult, bool condition, Func <OperationResult <T>, OperationResult <T> > nextOperation) => condition ? prevOperationResult .Continue(nextOperation) : prevOperationResult;
public static OperationResult <TNext> ContinueOnSuccess <TNext>(this OperationResult prevOperationResult, Func <OperationResult <TNext> > nextOperation) => prevOperationResult.AssertNotNull(nameof(prevOperationResult)) .IsSuccess ? prevOperationResult .Continue(nextOperation) : prevOperationResult.AsFailure <TNext>();