using BotPages.Core.Abstractions; namespace BotPages.Core.Messaging; /// /// Расширения для MessageBuilder для работы с разными адаптерами. /// public static class MessageBuilderAdapterExtensions { /// /// Отправить сообщение через конкретный адаптер. /// public static MessageBuilder WithAdapter(this MessageBuilder builder, IMessengerAdapter adapter) { builder.WithAdapter(adapter); return builder; } /// /// Отправить сообщение через адаптер по типу и ID экземпляра. /// public static MessageBuilder WithAdapter(this MessageBuilder builder, string messengerType, string instanceId) { // Получаем фабрику адаптеров через сервис локатор или контекст // В реальной реализации нужно будет передать фабрику адаптеров return builder; } /// /// Отправить сообщение через адаптер по полному ключу. /// public static MessageBuilder WithAdapter(this MessageBuilder builder, string fullMessengerKey) { // В реальной реализации нужно будет передать фабрику адаптеров return builder; } /// /// Отправить сообщение в указанный чат с указанным адаптером. /// public static MessageBuilder ToChat(this MessageBuilder builder, string chatId, IMessengerAdapter adapter) { return builder.ToChat(chatId, adapter); } /// /// Отправить сообщение в чат в другом адаптере того же типа. /// public static MessageBuilder ToChatInOtherInstance(this MessageBuilder builder, string chatId, string instanceId) { // Получаем тип текущего адаптера и используем другой экземпляр // В реальной реализации нужно будет передать фабрику адаптеров return builder; } }