Ejemplo n.º 1
0
        public async Task Handle(DeliveryCreatedEvent notification, CancellationToken cancellationToken)
        {
            var subscribers = await _subscriberRepository.GetAllByAsync(notification.Delivery.PartnerId);

            foreach (var subscriber in subscribers)
            {
                if (SubscribeToEvent(subscriber, EventType.DeliveryCreated))
                {
                    await _subscriptionService.SendDeliveryCreatedAsync(
                        subscriber,
                        new Delivery(
                            new AccessWindow(
                                notification.Delivery.AccessWindow.StartTime,
                                notification.Delivery.AccessWindow.EndTime),
                            new Recipient(
                                notification.Delivery.Recipient.Name,
                                notification.Delivery.Recipient.Address,
                                notification.Delivery.Recipient.Email,
                                notification.Delivery.Recipient.PhoneNumber),
                            new Order(
                                notification.Delivery.Order.OrderNumber,
                                notification.Delivery.Order.Sender),
                            notification.Delivery.CreatedAt));
                }
            }
        }