...
1) Компоненты (список должен пополнятся с выходом доработок)
1.Клиентские схемы:
OmniChannelPage - родительская страница для всех всех страниц добавления/редактирования канала.
OmniChannelCss - Модуль для описания CSS стилей в новых визуальных модулях (таких как ViberChannelPage)
ViberChannelPage - страница добавления и редактирования канала Viber.
WebSiteChannelPage - страница добавления/редактирования канала WebSite (Widget Beesender).
InstagramChannelPage - страница добавления/редактирования канала Instagram.
BsOmniChatConfigurationPage - модальное окно для заполнения полей для входа в систему Creatio при первой синхронизации
P.S. У визуальных модулей присутствует свой не визуальный модуль с таким же названием, только на конце используется слово Module. а не Page. Пример: ViberChannelPage и ViberChannelModule
2.Исходный код:
BsOmniChatSetupService - веб-сервис, который вызывается из BsOmniChatConfigurationPage и OmniChatSection при синхронизации и работе с системными настройками.
BsOmniSynchronizer - класс, в котором реализована логика синхронизации с коннектором Beesender.
BsOmniChannelService - веб-сервис, который вызывается в ViberChannelPage при добавлении, обновлении и актуализации канала Omnichannel.
BsOmniChannelHandler - класс, в котором реализована вся необходимая логика для работы с каналами.
BsOmniMessagingService - веб-сервис, который вызывается коннектором при отправке сообщения от клиента(из мессенджера) в CRM-систему.
BsOmniIncomingMessageHandler - класс, в котором реализована логика создания и распределения чата на оператора.
BsOmniOutcomeMessageWorker - класс в котором реализована логика отправки сообщения из CRM-системы на коннектор.
BsOmniFileUploader - класс для обработки файлов из CRM через файловый сервис Beesender, перед отправкой на коннектор.
BsOmniExtensions - файл, в котором собраны все необходимые классы-расширения для имеющихся типов.
BsOmniEnums - файл, в котором собраны все необходимые перечисления (enums), необходимые для работы с каналами Omnichannel.
BsOmniHelper - файл, в котором собраны все вспомогательные классы, необходимые для работы с каналами Omnichannel (логгер, класс для работы с системными настройками и т.д.)
BsOmniAppEventListener - класс для маппинга необходимых интерфейсов от Terrasoft для работы с каналами Omnichannel.
BsOmniModels - файл, в котором собраны все необходимые модели данных, необходимые для работы каналов Omnichannel.
BsOmniViberIncomingMessage BsOmniIncomingMessageConverter - класс для конвертации пришедшего от коннектора сообщения в формат “MessagingMessage”, необходимый для работы логики чатов на уровне Terrasoft.
Бизнес-процессы:
DeletingChannelFromMsgSettingsTable - БП для удаления записи из таблицы “MsgSettings“ BsOmniMsgSettingsHandler - класс для работы с именной таблицей настроек конкретного канала BsOmni{Имя провайдера}MsgSettings.
BsOmniMsgSettingsExecutor - набор пользовательских типов данных для работы с BsOmni{Имя провайдера}MsgSettings, состоящий из интерфейса IBsOmniMsgSettingsExecutor и его реализаций под конкретные каналы.
BsOmniWebSiteHandler - класс для работы с каналом WebSite (Widget Beesender).
BsOmniProfileDataProvider - класс, реализующий интерфейс IProfileDataProvider от Terrasoft и предназначен для отображения данных о клиенте. Используется в BsOmniAppEventListener.
BsOmniAttachmentLoadWorker - класс, реализующий интерфейс IAttachmentsLoadWorker от Terrasoft и предназначен для работы с файлами. Используется в BsOmniAppEventListener.
3.Бизнес-процессы:
DeletingEntryFromMsgsettingsTable - БП для удаления записи из объекта “BsOmni{Имя провайдера}MsgSettings” при удалении записи из объекта “Сhannel“.
4.Объекты:
BsOmniLog - логгер (аналог BeesenderLog)
BsOmniClient - пользователь мессенджера, на основе которого создаётся контакт в системе (аналог BeesenderClient)
BsOmniViberMsgSettings - именной объект для настроек канала Viber.
BsOmniInstagramMsgSettings - именной объект конкретного мессенджера для настроек канала Instagram.
BsOmniWebSiteMsgSettings - именной объект для настроек канала WebSite.
Channel - канал, который хранит ссылку на объект из таблицы BsOmni{Имя провайдера}MsgSettings. Реализация Terrasoft.
ChatQueue - очереди чатов (группа операторов), в которой хранится название самой группы. Реализация Terrasoft.
ChatQueueOperator - оператор в конкретной очереди чатов. Реализация Terrasoft.
OmniChat - чат. Реализация Terrasoft.
ChannelProvider - конкретный провайдер канала (Viber, Telegram и т.д.), в котором должна указываться ссылка на страницу создания и модификации канала (поле “PageUrl“). Реализация Terrasoft.
OmnichannelMessageFile - файлы в чате. Реализация Terrasoft.
ChatMessages - текстовые сообщения в чате. Реализация Terrasoft.
OmnichannelChatStatus - статус чата. Реализация Terrasoft.
OperatorRoutingRules - правила распределения чатов на группу операторов. Реализация Terrasoft.
P.S. В дальнейшем список будет расширяться.
2) Инструкция по внедрению нового канала в Omnichannel
...
Для того, чтоб можно было добавлять записи в именную таблицу настроек канала, необходимо создать класс, который будет реализовывать интерфейс IBsOmniMsgSettingsExecutor. Реализацию необходимо исполнять в схеме BsOmniMsgSettingsExecutor. Шаблон названия класса:
BsOmni{Название провайдера канала}SettingsExecutor
...
Dictionary<string, string> ParseChannelDataJson(JObject json) - метод для парсинга json объекта channelData, который приходит из визуального модуля страницы добавления/изменения канала. В данном методе результат парсинга записывается в Map, где ключом является название колонки в объекте, а значением непосредственно само значение атрибута из json.
void SetMsgSettingsColumnsForAdding(Insert insert, Dictionary<string, string> channelData) - метод для добавления необходимых колонок в запрос на добавление записи в объект BsOmni{Имя провайдера}MsgSettings.
void SetMsgSettingsColumnsForUpdating(Update update, Dictionary<string, string> channelData) - метод для добавления необходимых колонок в запрос на обновление записи в объекте BsOmni{Имя провайдера}MsgSettings.
...
P.S. В качестве примера можно взять модуль BsOmniWebSiteSettingsExecutor и делать по аналогии
...