ExecuteAsync – вызвать асинхронный обработчик
<< Click to Display Table of Contents >> Объектная модель > CoreEntities – администрирование ExecuteAsync – вызвать асинхронный обработчик |
Метод вызывает один или несколько асинхронных обработчиков. С помощью параметров метода можно задать всплывающее сообщение, которое выводится пользователю при запуске и завершении выполнения обработчика.
Если запущенный асинхронный обработчик завершился с ошибкой, то отображается сообщение вида:
При успешном завершении сообщение имеет вид:
Сообщение не отображается, если:
•выполнение асинхронного обработчика занимает менее 2 секунд;
•пользователь выходит из системы до завершения обработчика.
В текст также можно добавить гиперссылку, например на объект системы. При этом, если пользователь вышел из системы до окончания выполнения асинхронного обработчика, то при следующем входе сообщение отображаться не будет.
Метод доступен в серверном коде.
Перегрузки
ExecuteAsync() |
Вызвать несколько асинхронных обработчиков |
ExecuteAsync(string completedNotification) |
Вызвать асинхронный обработчик и показать текущему пользователю сообщение о завершении без ошибок |
ExecuteAsync(string completedNotification, IUser user) |
Вызвать асинхронный обработчик и показать указанному пользователю сообщение о завершении без ошибок |
ExecuteAsync(string startedNotification, string completedNotification) |
Вызвать асинхронный обработчик, при запуске и по завершении без ошибок показать сообщения текущему пользователю |
ExecuteAsync(string startedNotification, string completedNotification, IUser user) |
Вызвать асинхронный обработчик, при запуске и по завершении без ошибок показать сообщения указанному пользователю |
ExecuteAsync(string startedNotification, string completedNotification, string errorNotification, IUser user) |
Вызвать асинхронный обработчик, при запуске и по завершении показать сообщения указанному пользователю |
ExecuteAsync(string completedNotification) |
Вызвать несколько асинхронных обработчиков и показать текущему пользователю сообщение о завершении без ошибок |
ExecuteAsync(string completedNotification, IUser user) |
Вызвать несколько асинхронных обработчиков и показать указанному пользователю сообщение о завершении без ошибок |
ExecuteAsync(string startedNotification, string completedNotification) |
Вызвать несколько асинхронных обработчиков, при запуске и по завершении без ошибок показать сообщения текущему пользователю |
ExecuteAsync(string startedNotification, string completedNotification, IUser user) |
Вызвать несколько асинхронных обработчиков, при запуске и по завершении без ошибок показать сообщения указанному пользователю |
ExecuteAsync(string startedNotification, string completedNotification, string errorNotification, IUser user) |
Вызвать несколько асинхронных обработчиков, при запуске и по завершении показать сообщения указанному пользователю |
Синтаксис
C# |
public static void ExecuteAsync(); public static void ExecuteAsync(string startedNotification, string completedNotification, string errorNotification, IUser user); |
Параметры
startedNotification – сообщение, которое нужно показать при запуске одного или нескольких асинхронных обработчиков;
completedNotification – сообщение, которое нужно показать по завершении без ошибок всех вызываемых обработчиков;
errorNotification – сообщение, которое нужно показать по завершении с ошибкой одного из вызываемых обработчиков;
user – пользователь, которого нужно уведомить о завершении одного или нескольких асинхронных обработчиков.
Пример. Показать текущему пользователю всплывающее сообщение о завершении выполнения всех асинхронных обработчиков
var handlers = new List<IAsyncHandler>();
var convertHandler1 = ConvertPdfAsyncHandler.Create();
var convertHandler2 = ConvertPdfAsyncHandler.Create();
handlers.Add(convertHandler1);
handlers.Add(convertHandler2);
var startedMessage = "Конвертация документов началась.";
var completeMessage = string.Format("Конвертация документов завершена: {0}, {1}", Hyperlinks.Get(document1), Hyperlinks.Get(document2));
var errorMessage = string.Format("Конвертация документов завершена с ошибкой: {0}, {1}", Hyperlinks.Get(document1), Hyperlinks.Get(document2));
handlers.ExecuteAsync(startedMessage, completeMessage, errorMessage, Users.Current);
© Компания Directum, 2024 |