public Task <AcceptedResult> MessageRouter([FromBody] List <PostmarkEmail> emailMessages) { return(Task.Run(() => { var emails = _mapper.Map <List <PostmarkEmail>, List <Email> >(emailMessages); var msg = new EmailRequestMsg(emails); _messageRoutingManagerActor.Tell(msg, ActorRefs.NoSender); return Accepted(new PostmarkEmailResponse(msg.RequestId, emailMessages.Count)); })); }
/// <summary> /// Handle EmailRequestMsg received by sending a each email /// to MessageResolverActor for categorization. /// </summary> /// <param name="msg"></param> private void HandleEmailRequestMsg(EmailRequestMsg msg) { Persist(msg, emailRequestMsg => { // stores information about message // request before starting processing _messageRoutingService.StoreMessageRequest( emailRequestMsg.RequestId, emailRequestMsg.Created, emailRequestMsg.Emails.Count ); emailRequestMsg.Emails.ForEach(email => { _messageResolverActor.Tell(new ResolveEmailTypeMsg(msg.RequestId, email), Self); }); }); }