< Summary

Information
Class: Enjoy.Domain.Shared.Results.ResultExtensions
Assembly: Enjoy.Domain
File(s): D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Shared\Results\Extensions.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 78
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ToResult(...)100%11100%
ToResult(...)100%11100%
ToResult(...)100%11100%
ToResult(...)100%11100%
ToResult(...)100%11100%
ToResult(...)100%11100%
Match(...)100%22100%
Match(...)100%22100%

File(s)

D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Shared\Results\Extensions.cs

#LineLine coverage
 1using Enjoy.Domain.Shared.Errors;
 2
 3namespace Enjoy.Domain.Shared.Results;
 4
 5/// <summary>
 6/// Proporciona métodos de extensión para convertir valores y colecciones de errores a instancias de <see cref="Result{T
 7/// </summary>
 8public static class ResultExtensions
 9{
 10    /// <summary>
 11    /// Crea una instancia de <see cref="Result{TValue}"/> con el valor especificado.
 12    /// </summary>
 13    /// <typeparam name="TValue">El tipo del valor resultante.</typeparam>
 14    /// <param name="value">El valor resultante de la operación.</param>
 15    /// <returns>Una nueva instancia de la estructura <see cref="Result{TValue}"/>.</returns>
 116    public static Result<TValue> ToResult<TValue>(this TValue value) => value;
 17
 18    /// <summary>
 19    /// Crea una instancia de <see cref="Result{TValue}"/> con el error especificado.
 20    /// </summary>
 21    /// <typeparam name="TValue">El tipo del valor resultante.</typeparam>
 22    /// <param name="error">El error resultante de la operación.</param>
 23    /// <returns>Una nueva instancia de la estructura <see cref="Result{TValue}"/>.</returns>
 124    public static Result<TValue> ToResult<TValue>(this Error error) => error;
 25
 26    /// <summary>
 27    /// Convierte una colección de errores a una instancia de <see cref="Result{TValue}"/>.
 28    /// </summary>
 29    /// <typeparam name="TValue">El tipo del valor resultante.</typeparam>
 30    /// <param name="errors">La colección de errores a convertir.</param>
 31    /// <returns>Una nueva instancia de la estructura <see cref="Result{TValue}"/>.</returns>
 132    public static Result<TValue> ToResult<TValue>(this ICollection<Error> errors) => errors.ToList();
 33
 34    /// <summary>
 35    /// Convierte una lista de errores a una instancia de <see cref="Result{TValue}"/>.
 36    /// </summary>
 37    /// <typeparam name="TValue">El tipo del valor resultante.</typeparam>
 38    /// <param name="errors">La lista de errores a convertir.</param>
 39    /// <returns>Una nueva instancia de la estructura <see cref="Result{TValue}"/>.</returns>
 140    public static Result<TValue> ToResult<TValue>(this List<Error> errors) => errors;
 41
 42    /// <summary>
 43    /// Convierte un conjunto de errores a una instancia de <see cref="Result{TValue}"/>.
 44    /// </summary>
 45    /// <typeparam name="TValue">El tipo del valor resultante.</typeparam>
 46    /// <param name="errors">El conjunto de errores a convertir.</param>
 47    /// <returns>Una nueva instancia de la estructura <see cref="Result{TValue}"/>.</returns>
 148    public static Result<TValue> ToResult<TValue>(this HashSet<Error> errors) => errors;
 49
 50    /// <summary>
 51    /// Convierte un arreglo de errores a una instancia de <see cref="Result{TValue}"/>.
 52    /// </summary>
 53    /// <typeparam name="TValue">El tipo del valor resultante.</typeparam>
 54    /// <param name="errors">El arreglo de errores a convertir.</param>
 55    /// <returns>Una nueva instancia de la estructura <see cref="Result{TValue}"/>.</returns>
 156    public static Result<TValue> ToResult<TValue>(this Error[] errors) => errors;
 57
 58    /// <summary>
 59    /// Ejecuta una de las funciones proporcionadas dependiendo del estado del <see cref="Result{TValue}"/>.
 60    /// </summary>
 61    /// <param name="result">El resultado de la operación que se va a evaluar.</param>
 62    /// <param name="onSuccess">Función a ejecutar si el resultado es exitoso, que recibe el valor como parámetro.</para
 63    /// <param name="onFailure">Función a ejecutar si el resultado es fallido, que recibe el primer error como parámetro
 64    /// <returns>El valor retornado por la función <paramref name="onSuccess"/> si la operación fue exitosa, o por la fu
 65    public static TResult Match<TValue, TResult>(this Result<TValue> result, Func<TValue, TResult> onSuccess, Func<Error
 266        result.IsSuccess ? onSuccess(result.Value) : onFailure(result.FirstError);
 67
 68    /// <summary>
 69    /// Ejecuta una de las funciones proporcionadas dependiendo del estado del <see cref="Result"/>.
 70    /// </summary>
 71    /// <param name="result">El resultado de la operación que se va a evaluar.</param>
 72    /// <param name="onSuccess">Función a ejecutar si el resultado es exitoso.</param>
 73    /// <param name="onFailure">Función a ejecutar si el resultado es fallido, que recibe el primer error como parámetro
 74    /// <returns>El valor retornado por la función <paramref name="onSuccess"/> si la operación fue exitosa, o por la fu
 75    public static TResult Match<TResult>(this Result result, Func<TResult> onSuccess, Func<Error, TResult> onFailure) =>
 276        result.IsSuccess ? onSuccess() : onFailure(result.FirstError);
 77
 78}