Esempio n. 1
0
        public async Task Handle(OrderTransactionApprovedEvent message)
        {
            var notification = new NotificationAggregate
            {
                Id              = Guid.NewGuid().ToString(),
                Content         = "order_transaction_approved",
                IsRead          = false,
                From            = message.Subject,
                To              = message.SellerId,
                CreatedDateTime = DateTime.UtcNow,
                Parameters      = new[]
                {
                    new NotificationParameter
                    {
                        Id    = Guid.NewGuid().ToString(),
                        Type  = NotificationParameterTypes.OrderId,
                        Value = message.OrderId
                    }
                }
            };

            await _notificationRepository.Add(notification);

            _eventPublisher.Publish(new NotificationAddedEvent
            {
                Id      = notification.Id,
                Content = notification.Content,
                IsRead  = notification.IsRead,
                From    = notification.From,
                To      = notification.To
            });
        }
Esempio n. 2
0
        public Task Handle(OrderTransactionApprovedEvent message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var notifier = _connectionManager.GetHubContext <SecuredHub>();
            var lst      = new[] { message.Subject, message.SellerId };

            lst.Distinct();
            var connectionIds = new List <string>();

            foreach (var r in lst)
            {
                connectionIds.AddRange(SecuredHub.Connections.GetConnections(r).ToList());
            }

            notifier.Clients.Clients(connectionIds).orderTransactionApproved(_responseBuilder.GetOrderTransactionApproved(message));
            return(Task.FromResult(0));
        }