コード例 #1
0
        /// <summary>
        ///     Aplica os dados do aplicativo para: Shortcut
        /// </summary>
        /// <param name="dataUpdatedNotification">Notificação de atualização de dados.</param>
        /// <param name="cancellationToken">Token de cancelamento.</param>
        /// <returns>Task</returns>
        private async Task ApplyDataApplicationShortcut(DataUpdated dataUpdatedNotification,
                                                        CancellationToken cancellationToken)
        {
            var request = dataUpdatedNotification.Request;
            var dataApplicationShortcut = request.Data.Application.Shortcut;

            var shortcut = dataApplicationShortcut.ToShortcutDescription();

            try
            {
                var registered = _shortcut.Register(dataApplicationShortcut);

                Log.Debug("Shortcut key \"{Shortcut}\" registered: {Registered}",
                          shortcut, registered);

                await _messageBus.Send(new UserNotificationPost(
                                           new NotificationMessage(
                                               (registered
                            ? Resources.Notification_ShortcutDefined
                            : dataApplicationShortcut != Keys.None
                                ? Resources.Notification_ShortcutInvalid
                                : Resources.Notification_ShortcutRemoved).QueryString(shortcut),
                                               registered || dataApplicationShortcut == Keys.None),
                                           request), cancellationToken);
            }
            catch (Exception exception)
            {
                Log.Error(exception,
                          "Error registering shortcut key: {Shortcut}", shortcut);

                await _messageBus.Send(new UserNotificationPost(
                                           new NotificationMessage(exception.Message, false),
                                           request), cancellationToken);
            }
        }