ardalis/Result

Consider New Ardalis.Result.FastEndpoints package with base classes, extension methods

Ouverte

#175 ouverte le 10 avr. 2024

 (2 commentaires) (2 réactions) (0 personne assignée)C# (126 forks)github user discovery
enhancementgood first issuehelp wanted

Métriques du dépôt

Stars
 (1 034 étoiles)
Métriques de merge PR
 (Merge moyen 8j 3h) (2 PRs mergées en 30 j)

Description

For example this code from a devBetter.com member:

public abstract class EndpointBase<TRequest, TResponse, TMapper> : Endpoint<TRequest, IResult, TMapper> where TRequest : notnull where TResponse : notnull where TMapper : class, IResponseMapper
{
    public override async Task<IResult> ExecuteAsync(TRequest req, CancellationToken ct)
    {
        Result<TResponse> response = await ProcessAsync(req, ct)
            .ConfigureAwait(false);

        this.AddResultErrors(response);

        ThrowIfAnyErrors();

        return response
            .ToMinimalApiResult();
    }

    public abstract Task<Result<TResponse>> ProcessAsync(TRequest request, CancellationToken cancellationToken);
}

// or similar by nhwilly
public abstract class EndpointBase<TRequest, TResponse> : Endpoint<TRequest, Microsoft.AspNetCore.Http.IResult> where TRequest : notnull where TResponse : notnull
{
  public override async Task<Microsoft.AspNetCore.Http.IResult> ExecuteAsync(TRequest req, CancellationToken ct)
  {
    Result<TResponse> response = await ProcessAsync(req, ct)
        .ConfigureAwait(false);

    this.AddResultErrors(response);

    ThrowIfAnyErrors();

    return response.ToMinimalApiResult();
  }

  public abstract Task<Result<TResponse>> ProcessAsync(TRequest request, CancellationToken cancellationToken);
}

Guide contributeur