This commit is contained in:
25
BotPages.Core/Abstractions/IMessengerAdapterFactory.cs
Normal file
25
BotPages.Core/Abstractions/IMessengerAdapterFactory.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using BotPages.Core.Context;
|
||||
|
||||
namespace BotPages.Core.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// Фабрика адаптеров мессенджеров.
|
||||
/// Используется для разрешения конкретного <see cref="IMessengerAdapter"/> по типу мессенджера.
|
||||
/// </summary>
|
||||
public interface IMessengerAdapterFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить адаптер для указанного мессенджера.
|
||||
/// </summary>
|
||||
/// <param name="messengerType">
|
||||
/// Тип мессенджера (например, "Telegram", "Slack", "VK").
|
||||
/// Значение должно совпадать с <see cref="UpdateContext.User"/>.<see cref="UserContext.MessengerType"/>.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// Экземпляр <see cref="IMessengerAdapter"/>, зарегистрированный для данного типа мессенджера.
|
||||
/// </returns>
|
||||
/// <exception cref="InvalidOperationException">
|
||||
/// Выбрасывается, если адаптер для указанного типа не зарегистрирован.
|
||||
/// </exception>
|
||||
IMessengerAdapter Resolve(string messengerType);
|
||||
}
|
||||
Reference in New Issue
Block a user