Esempio n. 1
0
        public void NotifyNotificationsClients(NotifyManyNotificationsClientsRequest request)
        {
            var transaction = new NotifyNotificationsClientsTransaction();

            transactionHelper.ExecuteComplexTransactionalOperation(()
                                                                   => transaction.ExecuteNotifyNotificationsClientsTransaction(request), transaction.InstanceRepositories);
        }
        public void ExecuteNotifyNotificationsClientsTransaction(NotifyManyNotificationsClientsRequest request)
        {
            var connectionsIdList = new List <string>();

            foreach (var notifyClient in request.NotificationsClients)
            {
                RegisterNotification(notifyClient,
                                     request.Owner,
                                     request.ApplicationId,
                                     request.UserContextId,
                                     out Notification notification);

                RegisterClient(notifyClient, request.UserContextId, notification);

                AddConnectionsId(connectionsIdList, notifyClient.UsersId, request.ApplicationId);
            }

            if (HasClientConnected(connectionsIdList))
            {
                NotificationClientService.NotifyClients(connectionsIdList);
            }
        }