private void HandleSendEmailMsg(SendEmailMsg msg) { Persist(msg, sendEmailMsg => { switch (msg.MessageType) { case MessageType.Transactional: _emailDeliveryService.SendSingleEmail(_mapper.Map <EmailMessage>(msg.Email)); break; case MessageType.NonTransactional: _bulkEmailQueue.Enqueue(msg.Email); break; } }); }
/// <summary> /// Sending email to MessageSendingActor which is sending /// email to correct downstream pipeline and also instructs /// MessageHandlerExecutorActor execute all configured handlers /// on email. /// after it as been categorized. /// </summary> /// <param name="msg"></param> private void HandleEmailQualifyMsg(EmailQualifyMsg msg) { Persist(msg, emailQualifyMsg => { var sendEmailMsg = new SendEmailMsg( requestId: emailQualifyMsg.RequestId, email: emailQualifyMsg.Email, messageType: emailQualifyMsg.MessageType ); _messageSendingActor.Tell(sendEmailMsg, Self); var executeHandlersMsg = new ExecuteHandlersMsg( requestId: emailQualifyMsg.RequestId, email: emailQualifyMsg.Email ); _messageHandlerExecutorActor.Tell(executeHandlersMsg, Self); }); }