private void HandleValidateEmailMsg(ValidateEmailMsg msg) { Persist(msg, validateEmailMsg => { var result = _emailValidator.Execute(_mapper.Map <EmailMessage>(msg.Email)); if (result.IsSuccess) { var emailQualifyMsg = new EmailQualifyMsg( validateEmailMsg.RequestId, validateEmailMsg.Email, validateEmailMsg.MessageType ); Context.Parent.Tell(emailQualifyMsg, Self); } else { var emailQualifyMsg = new EmailDisqualifiedMsg( validateEmailMsg.RequestId, validateEmailMsg.Email, validateEmailMsg.MessageType, result.FailureReasons ); Context.Parent.Tell(emailQualifyMsg, Self); } }); }
/// <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); }); }