private async Task <OpResult> ProcessSendEmailRequest(NotifyByEmailCmd cmd) { //sending will come later var sendResult = await SendEmail(cmd); switch (sendResult.ResultCode) { case OpResultCode.SUCCCESS: { var SaveSuccessfullEmailCmd = GetSaveCmd(sendResult, cmd); _persistentStorageActor.Tell(SaveSuccessfullEmailCmd); return(new OpResult { ResultCode = OpResultCode.SUCCCESS, StatusDesc = OpResultCode.SUCCCESS.ToString() }); } default: { var logFailedEmailCmd = GetLogCmd(sendResult, cmd); _persistentStorageActor.Tell(logFailedEmailCmd); return(new OpResult { ResultCode = OpResultCode.FAILURE, StatusDesc = sendResult.StatusDesc }); } } }
private async Task <OpResult> SendEmail(NotifyByEmailCmd request) { return(await Task.Run(() => { return new OpResult { ResultCode = OpResultCode.SUCCCESS, StatusDesc = OpResultCode.SUCCCESS.ToString() }; })); }
private PersistentStorageActor.SaveSentEmailCmd GetSaveCmd(OpResult sendResult, NotifyByEmailCmd cmd) { return(new PersistentStorageActor.SaveSentEmailCmd { EmailRequest = cmd.EmailRequest }); }
private PersistentStorageActor.LogFailedEmailCmd GetLogCmd(OpResult sendResult, NotifyByEmailCmd request) { return(new PersistentStorageActor.LogFailedEmailCmd { EmailRequest = request.EmailRequest, FailureReason = sendResult.StatusDesc }); }