Beispiel #1
0
 public static SendBroadcastData <T> Create(BroadcastGroup broadcastGroup, T msgData)
 {
     return(new SendBroadcastData <T>
     {
         BroadcastGroup = broadcastGroup,
         MessageData = msgData
     });
 }
Beispiel #2
0
 public static SendBroadcastData <T> Create(string partnerId, BroadcastGroup broadcastGroup, T msgData)
 {
     return(new SendBroadcastData <T>
     {
         PartnerId = partnerId,
         BroadcastGroup = broadcastGroup,
         MessageData = msgData
     });
 }
Beispiel #3
0
        private IActorRef CreateNotificationsRouter(IEnumerable <IActorRef> notificationsActors)
        {
            var group = new BroadcastGroup(notificationsActors.Select(actor => actor.Path.ToString()));
            var notificationsRouterProps = Props
                                           .Empty
                                           .WithRouter(group);

            return(Context.ActorOf(notificationsRouterProps));
        }
        public async Task SendBroadcastAsync(BroadcastGroup broadcastGroup, EmailMessage message)
        {
            var emails = await _broadcastMailsRepository.GetEmailsByGroup(broadcastGroup);

            foreach (var email in emails)
            {
                await SendEmailAsync(email.Email, message);
            }
        }
Beispiel #5
0
        public Task ProduceSendEmailBroadcast <T>(BroadcastGroup broadcastGroup, T msgData)
        {
            var data = SendBroadcastData <T> .Create(broadcastGroup, msgData);

            var msg = new QueueRequestModel <SendBroadcastData <T> > {
                Data = data
            };

            return(_queueExt.PutMessageAsync(msg));
        }
Beispiel #6
0
        private Atom CreateBroadcastPacket(BroadcastGroup group, Atom packet)
        {
            var bcst = new AtomCollection();

            bcst.SetBcstFrom(PeerCast.SessionID);
            bcst.SetBcstGroup(group);
            bcst.SetBcstHops(0);
            bcst.SetBcstTTL(11);
            PCPVersion.SetBcstVersion(bcst);
            bcst.SetBcstChannelID(Channel.ChannelID);
            bcst.Add(packet);
            return(new Atom(Atom.PCP_BCST, bcst));
        }
Beispiel #7
0
        /// <summary>
        /// 指定したパケットを含むブロードキャストパケットを作成します
        /// </summary>
        /// <param name="group">配送先グループ</param>
        /// <param name="packet">配送するパケット</param>
        /// <returns>作成したPCP_BCSTパケット</returns>
        public virtual Atom CreateBroadcastPacket(BroadcastGroup group, Atom packet)
        {
            var bcst = new AtomCollection();

            bcst.SetBcstFrom(PeerCast.SessionID);
            bcst.SetBcstGroup(group);
            bcst.SetBcstHops(0);
            bcst.SetBcstTTL(11);
            bcst.SetBcstVersion(PCP_VERSION);
            bcst.SetBcstVersionVP(PCP_VERSION_VP);
            bcst.SetBcstChannelID(Channel.ChannelID);
            bcst.Add(packet);
            return(new Atom(Atom.PCP_BCST, bcst));
        }
        public Task ProduceSendEmailBroadcast <T>(string partnerId, BroadcastGroup broadcastGroup, T msgData) where T : IEmailMessageData
        {
            if (typeof(PlainTextData) == typeof(T))
            {
                throw new ArgumentException("Broadcast can not be done using PlainTextData type");
            }

            var data = SendBroadcastData <T> .Create(partnerId, broadcastGroup, msgData);

            var msg = new QueueRequestModel <SendBroadcastData <T> > {
                Data = data
            };

            return(_queueExt.PutMessageAsync(msg));
        }
Beispiel #9
0
 /// <summary>
 /// 接続されている各ストリームへパケットを送信します
 /// </summary>
 /// <param name="from">送信元のホスト</param>
 /// <param name="packet">送信するデータ</param>
 /// <param name="group">送信先グループ</param>
 public virtual void Broadcast(Host from, Atom packet, BroadcastGroup group)
 {
     if ((group & (BroadcastGroup.Trackers | BroadcastGroup.Relays)) != 0)
     {
         if (sourceStream != null)
         {
             sourceStream.Post(from, packet);
         }
     }
     if ((group & (BroadcastGroup.Relays)) != 0)
     {
         foreach (var outputStream in outputStreams)
         {
             outputStream.Post(from, packet);
         }
     }
 }
Beispiel #10
0
 /// <summary>
 /// 接続されている各ストリームへパケットを送信します
 /// </summary>
 /// <param name="from">送信元のホスト</param>
 /// <param name="packet">送信するデータ</param>
 /// <param name="group">送信先グループ</param>
 public virtual void Broadcast(Host from, Atom packet, BroadcastGroup group)
 {
     if (group.HasFlag(BroadcastGroup.Trackers) || group.HasFlag(BroadcastGroup.Relays))
     {
         var source = sourceStream;
         if (source != null)
         {
             source.Post(from, packet);
         }
     }
     if (group.HasFlag(BroadcastGroup.Relays))
     {
         foreach (var os in sinks)
         {
             os.OnBroadcast(from, packet);
         }
     }
 }
Beispiel #11
0
        public static Task BroadcastEmailAsync(this IEmailSender emailSender, string partnerId, BroadcastGroup broadcastGroup, string subject, string body)
        {
            var model = new PlainTextBroadCastData
            {
                Subject = subject,
                Text    = body
            };

            return(emailSender.SendEmailBroadcastAsync(partnerId, broadcastGroup, model));
        }
        public static Task BroadcastEmailAsync(this IEmailSender emailSender, BroadcastGroup broadcastGroup, string subject, string body)
        {
            var model = PlainTextBroadCastData.Create(subject, body);

            return(emailSender.SendEmailBroadcastAsync(broadcastGroup, model));
        }
        public async Task SendBroadcastAsync(BroadcastGroup broadcastGroup, EmailMessage message)
        {
            await _smtpSenderMock.SendBroadcastAsync(broadcastGroup, message);

            await _smtpMailSender.SendBroadcastAsync(broadcastGroup, message);
        }
 public static void SetBcstGroup(this IAtomCollection collection, BroadcastGroup value)
 {
     SetAtomTo(collection, new Atom(Atom.PCP_BCST_GROUP, (byte)value));
 }
 public async Task SendPlainTextBroadcast(BroadcastGroup @group, string subject, string text)
 {
     await
     _emailSender.SendEmailBroadcastAsync(@group,
                                          new PlainTextBroadCastData { Subject = subject, Text = text });
 }
 public async Task SendEmailBroadcastAsync <T>(BroadcastGroup broadcastGroup, T messageData) where T : IEmailMessageData
 {
     await _emailCommandProducer.ProduceSendEmailBroadcast(broadcastGroup, messageData);
 }
 /// <summary>
 /// 指定したパケットを含むブロードキャストパケットを作成します
 /// </summary>
 /// <param name="group">配送先グループ</param>
 /// <param name="packet">配送するパケット</param>
 /// <returns>作成したPCP_BCSTパケット</returns>
 private Atom CreateBroadcastPacket(BroadcastGroup group, Atom packet)
 {
     var bcst = new AtomCollection();
       bcst.SetBcstFrom(PeerCast.SessionID);
       bcst.SetBcstGroup(group);
       bcst.SetBcstHops(0);
       bcst.SetBcstTTL(11);
       PCPVersion.SetBcstVersion(bcst);
       bcst.SetBcstChannelID(Channel.ChannelID);
       bcst.Add(packet);
       return new Atom(Atom.PCP_BCST, bcst);
 }
 public static void SetBcstGroup(this IAtomCollection collection, BroadcastGroup value)
 {
     SetAtomTo(collection, new Atom(Atom.PCP_BCST_GROUP, (byte)value));
 }
Beispiel #19
0
 public async Task SendEmailBroadcastAsync <T>(string partnerId, BroadcastGroup broadcastGroup, T messageData) where T : IEmailMessageData
 {
     await _messageProducer.ProduceSendEmailBroadcast(partnerId, broadcastGroup, messageData);
 }
Beispiel #20
0
 public async Task <IEnumerable <IBroadcastMail> > GetEmailsByGroup(BroadcastGroup group)
 {
     return(await _tableStorage.GetDataAsync(BroadcastMailEntity.GeneratePartitionKey(group)));
 }
Beispiel #21
0
 public static string GeneratePartitionKey(BroadcastGroup broadcastGroup)
 {
     return(((int)broadcastGroup).ToString());
 }