Esempio n. 1
0
 private async Task ProcessPushNotifications(CampaignQueueItem campaign)
 {
     if (campaign.IsGlobal)
     {
         var globalMessage = new PushNotificationQueueItem {
             Campaign  = campaign,
             Broadcast = true
         };
         await EventDispatcher.RaiseEventAsync(globalMessage, options =>
                                               options.WrapInEnvelope(false)
                                               .WithQueueName(QueueNames.SendPushNotification)
                                               );
     }
     else
     {
         foreach (var userCode in campaign.SelectedUserCodes)
         {
             var userMessage = new PushNotificationQueueItem {
                 UserCode  = userCode,
                 Campaign  = campaign,
                 Broadcast = false
             };
             await EventDispatcher.RaiseEventAsync(userMessage, options =>
                                                   options.WrapInEnvelope(false)
                                                   .WithQueueName(QueueNames.SendPushNotification)
                                                   );
         }
     }
 }
Esempio n. 2
0
 public async Task Process(CampaignQueueItem campaign) {
     if (!campaign.Published) {
         return;
     }
     if (campaign.DeliveryChannel.HasFlag(CampaignQueueItem.CampaignDeliveryChannel.PushNotification)) {
         await ProcessPushNotifications(campaign);
         return;
     }
     if (campaign.DeliveryChannel.HasFlag(CampaignQueueItem.CampaignDeliveryChannel.Email)) {
         // TODO: Create next hop to send campaign via email.
         return;
     }
     if (campaign.DeliveryChannel.HasFlag(CampaignQueueItem.CampaignDeliveryChannel.SMS)) {
         // TODO: Create next hop to send campaign via SMS gateway.
         return;
     }
 }
Esempio n. 3
0
 private async Task ProcessPushNotifications(CampaignQueueItem campaign) {
     if (campaign.IsGlobal) {
         var globalMessage = new PushNotificationQueueItem {
             Campaign = campaign,
             Broadcast = true
         };
         await MessageQueue.Enqueue(globalMessage, campaign.ActivePeriod?.From?.DateTime ?? DateTime.UtcNow);
     } else {
         foreach (var userCode in campaign.SelectedUserCodes) {
             var userMessage = new PushNotificationQueueItem {
                 UserCode = userCode,
                 Campaign = campaign,
                 Broadcast = false
             };
             await MessageQueue.Enqueue(userMessage, campaign.ActivePeriod?.From?.DateTime ?? DateTime.UtcNow);
         }
     }
 }