Class ResultValidationExtensions

Namespace
REslava.Result.Extensions
Assembly
REslava.Result.dll

Extension methods for validation operations on Result types.

public static class ResultValidationExtensions
Inheritance
ResultValidationExtensions
Inherited Members

Methods

EnsureAsync<T>(Result<T>, Func<T, Task<bool>>, Error, CancellationToken)

Ensures that an async condition is met, otherwise returns a failed result.

var user = new User { Id = 123, Email = "test@example.com" };
var result = Result<User>.Ok(user);

var validated = await result .EnsureAsync( async u => await _db.UserExistsAsync(u.Id), new Error("User not found in database"));

public static Task<Result<T>> EnsureAsync<T>(this Result<T> result, Func<T, Task<bool>> predicate, Error error, CancellationToken cancellationToken = default)

Parameters

result Result<T>
predicate Func<T, Task<bool>>
error Error
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureAsync<T>(Result<T>, Func<T, Task<bool>>, string, CancellationToken)

Ensures that an async condition is met, otherwise returns a failed result.

public static Task<Result<T>> EnsureAsync<T>(this Result<T> result, Func<T, Task<bool>> predicate, string errorMessage, CancellationToken cancellationToken = default)

Parameters

result Result<T>
predicate Func<T, Task<bool>>
errorMessage string
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureAsync<T>(Task<Result<T>>, Func<T, bool>, Error, CancellationToken)

Awaits the result then ensures that a condition is met, otherwise returns a failed result.

var result = await GetUserAsync(userId)
    .EnsureAsync(
        user => user.IsActive,
        new Error("User is not active"));
public static Task<Result<T>> EnsureAsync<T>(this Task<Result<T>> resultTask, Func<T, bool> predicate, Error error, CancellationToken cancellationToken = default)

Parameters

resultTask Task<Result<T>>
predicate Func<T, bool>
error Error
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureAsync<T>(Task<Result<T>>, Func<T, bool>, string, CancellationToken)

Awaits the result then ensures that a condition is met, otherwise returns a failed result.

public static Task<Result<T>> EnsureAsync<T>(this Task<Result<T>> resultTask, Func<T, bool> predicate, string errorMessage, CancellationToken cancellationToken = default)

Parameters

resultTask Task<Result<T>>
predicate Func<T, bool>
errorMessage string
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureAsync<T>(Task<Result<T>>, Func<T, Task<bool>>, Error, CancellationToken)

Awaits the result then ensures that an async condition is met, otherwise returns a failed result.

var result = await GetUserAsync(userId)
    .EnsureAsync(
        async user => await _userService.IsUserActiveAsync(user.Id),
        new Error("User is not active"));
public static Task<Result<T>> EnsureAsync<T>(this Task<Result<T>> resultTask, Func<T, Task<bool>> predicate, Error error, CancellationToken cancellationToken = default)

Parameters

resultTask Task<Result<T>>
predicate Func<T, Task<bool>>
error Error
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureAsync<T>(Task<Result<T>>, Func<T, Task<bool>>, string, CancellationToken)

Awaits the result then ensures that an async condition is met, otherwise returns a failed result.

public static Task<Result<T>> EnsureAsync<T>(this Task<Result<T>> resultTask, Func<T, Task<bool>> predicate, string errorMessage, CancellationToken cancellationToken = default)

Parameters

resultTask Task<Result<T>>
predicate Func<T, Task<bool>>
errorMessage string
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureNotNullAsync<T>(Task<Result<T>>, string, CancellationToken)

Awaits the result then ensures the value is not null.

public static Task<Result<T>> EnsureNotNullAsync<T>(this Task<Result<T>> resultTask, string errorMessage, CancellationToken cancellationToken = default) where T : class

Parameters

resultTask Task<Result<T>>
errorMessage string
cancellationToken CancellationToken

Returns

Task<Result<T>>

Type Parameters

T

EnsureNotNull<T>(Result<T>, string)

Ensures the value is not null.

public static Result<T> EnsureNotNull<T>(this Result<T> result, string errorMessage) where T : class

Parameters

result Result<T>
errorMessage string

Returns

Result<T>

Type Parameters

T

Ensure<T>(Result<T>, Func<T, bool>, Error)

Ensures that a condition is met, otherwise returns a failed result.

public static Result<T> Ensure<T>(this Result<T> result, Func<T, bool> predicate, Error error)

Parameters

result Result<T>
predicate Func<T, bool>
error Error

Returns

Result<T>

Type Parameters

T

Ensure<T>(Result<T>, Func<T, bool>, string)

Ensures that a condition is met, otherwise returns a failed result.

public static Result<T> Ensure<T>(this Result<T> result, Func<T, bool> predicate, string errorMessage)

Parameters

result Result<T>
predicate Func<T, bool>
errorMessage string

Returns

Result<T>

Type Parameters

T

Ensure<T>(Result<T>, params (Func<T, bool> predicate, Error error)[])

Ensures that multiple conditions are met, otherwise returns a failed result.

public static Result<T> Ensure<T>(this Result<T> result, params (Func<T, bool> predicate, Error error)[] validations)

Parameters

result Result<T>
validations (Func<T, bool> predicate, Error error)[]

Returns

Result<T>

Type Parameters

T