События между плагинами
[v9preview2
v9
]
В API V9Preview2 была добавлена возможность создавать и использовать пользовательские события.
Для этого были добавлены следующие операции:
GetExternalNotificationSubscription(string subscriptionName)
- операция позволяет подписываться на пользовательское событие с именем subscriptionName. А в случае его отсутствия зарегистрировать его и сразу же подписаться на него. Максимальная длина имени события - 256 символов.
Пример использования:
IDisposable subscription;
subscription =
PluginContext.Operations
.GetExternalNotificationSubscription(subscriptionName)
.Subscribe(Console.WriteLine);
GetAllExternalNotificationsNames()
- операция позволяет получить список имен всех зарегистрированных событий на терминале.
InvokeExternalNotification(string subscriptionName, string notificationData)
- операция вызывает срабатывание оповещения пользовательского события с именем subscriptionName всем его подписчикам и передает в нем информацию в текстовом виде notificationData. Максимальная длина информации - 32000 символов.
Пример использования:
var subscriptionName = PluginContext.Operations.GetAllExternalNotificationsNames().Last();
PluginContext.Operations.InvokeExternalNotification(subscriptionName, Guid.NewGuid().ToString());
Важно знать, что события являются общими для всех терминалов группы, что позволяет передавать извещения не только на локальные плагины, но также и на плагины других терминалов. Также вызывать оповещение события можно с любого плагина терминала группы, даже если сам плагин на данное событие не подписан.
В SamplePlugin
был добавлен пример
использования пользовательских событий.