ardalis/Result

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

オープン

#175 opened on 2024/04/10

 (2 件のコメント) (2 件のリアクション) (0 人の担当者)C# (126 件のフォーク)github user discovery
enhancementgood first issuehelp wanted

Repository metrics

Stars
 (1,034 個のスター)
PR merge metrics
 (平均マージ 8d 3h) (30d で 2 merged PRs)

説明

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);
}

コントリビューターガイド