private void PostClientListUnDeleteHandler(ClientListUnDeleteCommand c) { _logger.Info($"UnDeleting from client list Id:{c.ClientId} UserName:{c.ClientListItemData.Name}."); _ActorState[c.ClientId] = c.ClientListItemData; ClientListItemUnDeletedEvent message = new ClientListItemUnDeletedEvent(c.ClientListItemData.Copy(), c.User, c.ConnectionId); NotifySubscribers(message); AutoSaveSnashot(false); }
/// <summary> /// Removes client(item) from the list. If an instance of the ClientActor is in memory it unloads it. /// </summary> /// <param name="e"></param> /// <returns></returns> private void HandleClientUnDeletedEvent(ClientUnDeletedEvent e) { // Is the item still in the list? if (_ActorState[e.Id] == null) { _logger.Info($"{e.User} tried undeleting from client list id:{e.Id} but was not found."); } else { ClientListItem cliNewState = _ActorState[e.Id].Copy(); cliNewState.IsActive = true; // Memorialize that we are recovering the item from the list in the journal ClientListUnDeleteCommand clientListUnDeleteCommand = new ClientListUnDeleteCommand( cliNewState, e.User, e.ConnectionId); _logger.Info($"Undeleting client list item Id{e.Id} UserName:{e.ResultClientState.Name}."); Persist <ClientListUnDeleteCommand>(clientListUnDeleteCommand, PostClientListUnDeleteHandler); } }
private void UnDeleteClientListRecoveryCommand(ClientListUnDeleteCommand c) { _logger.Info($"Recovering Undeleting client list item Id:{c.Id} UserName:{c.ClientListItemData?.Name ?? "No UserName"}."); _ActorState[c.ClientId] = c.ClientListItemData; _logger.Info($"Recovered Undeleted from client list Id:{c.Id} UserName:{c.ClientListItemData?.Name ?? "No UserName"}."); }