namespace BotPages.Core.Abstractions; /// /// Фабрика адаптеров мессенджеров. /// Используется для разрешения конкретного по ID адаптера. /// public interface IMessengerAdapterFactory { /// /// Список всех зарегистрированных адаптеров. /// IReadOnlyList AllAdapters { get; } /// /// Зарегистрировать адаптер с уникальным идентификатором. /// /// Уникальный идентификатор адаптера. /// Экземпляр адаптера. /// Текущий экземпляр фабрики для цепочки вызовов. /// Если адаптер с таким ID уже зарегистрирован. IMessengerAdapterFactory Register(string adapterId, IMessengerAdapterSetup adapter); /// /// Зарегистрировать адаптер с автоматически сгенерированным ID. /// IMessengerAdapterFactory Register(IMessengerAdapterSetup adapter); /// /// Получить адаптер по ID. /// /// Если адаптер не найден. IMessengerAdapter Resolve(string adapterId); /// /// Попытаться получить адаптер по ID. /// bool TryResolve(string adapterId, out IMessengerAdapter? adapter); /// /// Получить все адаптеры определенного типа. /// IReadOnlyList GetAdaptersByType(string adapterType); /// /// Проверить, зарегистрирован ли адаптер с указанным ID. /// bool Contains(string adapterId); /// /// Удалить адаптер по ID. /// bool Remove(string adapterId); }