/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.Abstractions/Middleware/Configuration/SpecificationPipeBuilder.cs
64 строки
2 KB
Chris Patterson
Massive file cleanup
27 мар 2024, 02:43
27 мар 2024, 02:43
2ac69e8
Код
Авторство
О чём код?
namespace MassTransit.Configuration { using System.Collections.Generic; public partial class PipeConfigurator<TContext> where TContext : class, PipeContext { public class SpecificationPipeBuilder : ISpecificationPipeBuilder<TContext> { readonly List<IFilter<TContext>> _filters; public SpecificationPipeBuilder() { _filters = new List<IFilter<TContext>>(16); } public void AddFilter(IFilter<TContext> filter) { _filters.Add(filter); } public bool IsDelegated => false; public bool IsImplemented => false; public ISpecificationPipeBuilder<TContext> CreateDelegatedBuilder() { return new ChildSpecificationPipeBuilder(this, IsImplemented, true); } public ISpecificationPipeBuilder<TContext> CreateImplementedBuilder() { return new ChildSpecificationPipeBuilder(this, true, IsDelegated); } public IPipe<TContext> Build() { if (_filters.Count == 0) return Cache.EmptyPipe; IPipe<TContext> current = new LastPipe(_filters[_filters.Count - 1]); for (var i = _filters.Count - 2; i >= 0; i--) current = new FilterPipe(_filters[i], current); return current; } public IPipe<TContext> Build(IPipe<TContext> lastPipe) { if (_filters.Count == 0) return lastPipe; IPipe<TContext> current = lastPipe; for (var i = _filters.Count - 1; i >= 0; i--) current = new FilterPipe(_filters[i], current); return current; } } } }