Код IT Загрузка примера кода…

C# main.cs
public interface IPolicy<in TContext>
{
    Task<PolicyResult> EvaluateAsync(TContext context, CancellationToken ct);
}

public sealed class PolicyPipeline<TContext>
{
    private readonly IEnumerable<IPolicy<TContext>> _policies;

    public async Task<PolicyResult> RunAsync(TContext context, CancellationToken ct)
    {
        foreach (var policy in _policies)
        {
            var result = await policy.EvaluateAsync(context, ct);
            if (!result.Success)
                return result;
        }
        return PolicyResult.Ok();
    }
}
public interface IPolicy<in TContext>
{
    Task<PolicyResult> EvaluateAsync(TContext context, CancellationToken ct);
}

public sealed class PolicyPipeline<TContext>
{
    private readonly IEnumerable<IPolicy<TContext>> _policies;

    public async Task<PolicyResult> RunAsync(TContext context, CancellationToken ct)
    {
        foreach (var policy in _policies)
        {
            var result = await policy.EvaluateAsync(context, ct);
            if (!result.Success)
                return result;
        }
        return PolicyResult.Ok();
    }
}