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);
            });
        }