public UserGetStateResponse(IActorRef originalRequestor, UserState userState, UserGetStateRequest originalRequest) : base(originalRequestor, userState, originalRequest) { }
/// <summary> /// This method sets the actor so that it can "boot" itself up. /// </summary> private void Initializing() { _logger.Debug("Initializing."); // // Handle Responses // // Handle case when we get a list of actor ref's from the supervisor Receive <UserGetChildActorRefsResponse>(r => { _logger.Debug("Received child actor references."); // Go get the child actor states foreach (IActorRef childActorRef in r.ListOfChildActorRefs) { _logger.Debug($"Requesting child state from:{childActorRef.Path.Name}"); UserGetStateRequest newRequest = new UserGetStateRequest(Self); childActorRef.Tell(newRequest); _PendingRequests.Add(newRequest); } }); // Save the User state Receive <UserGetStateResponse>(r => { _logger.Debug($"Received child actor state from:{Sender.Path.Name}"); if (r.ReplyUserState != null) { _ActorState.Add(r.ReplyUserState.Id, r.ReplyUserState); } _PendingRequests.Remove(r.OriginalRequest as UserGetStateRequest); if (_PendingRequests.Count == 0) { _logger.Info("Received all User actor states."); Become(Ready); } }); // Reply to self with a null User state Receive <UserGetStateRequest>(r => { Sender.Tell(new UserGetStateResponse(r.Requestor, null, r)); }); Receive <SubscribedForCommandEvents>(r => { _logger.Info($"Subscribed for '{r.Id}' command events"); }); // This catch all will log if there are any weird unhandled messages. Receive <object>(message => { Stash.Stash(); _logger.Debug($"Stashing unhandled message from:{Sender.Path.ToStringWithAddress()} Got Unhandled Message:{message.GetType().Name}"); }); // // Requests // //Request from parent the list of child actor IActorRefs to request the state from them Context.Parent.Tell(new UserGetChildActorRefs(Self, null)); _logger.Debug("Initialized."); }