public static SendBroadcastData <T> Create(BroadcastGroup broadcastGroup, T msgData) { return(new SendBroadcastData <T> { BroadcastGroup = broadcastGroup, MessageData = msgData }); }
public static SendBroadcastData <T> Create(string partnerId, BroadcastGroup broadcastGroup, T msgData) { return(new SendBroadcastData <T> { PartnerId = partnerId, BroadcastGroup = broadcastGroup, MessageData = msgData }); }
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); } }
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)); }
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)); }
/// <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)); }
/// <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); } } }
/// <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); } } }
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 async Task SendEmailBroadcastAsync <T>(string partnerId, BroadcastGroup broadcastGroup, T messageData) where T : IEmailMessageData { await _messageProducer.ProduceSendEmailBroadcast(partnerId, broadcastGroup, messageData); }
public async Task <IEnumerable <IBroadcastMail> > GetEmailsByGroup(BroadcastGroup group) { return(await _tableStorage.GetDataAsync(BroadcastMailEntity.GeneratePartitionKey(group))); }
public static string GeneratePartitionKey(BroadcastGroup broadcastGroup) { return(((int)broadcastGroup).ToString()); }