public override void Execute()
 {
     //#if DEBUG
     //authenticate players from config if needed
     if (config.players.Count > 0)
     {
         foreach (var player in config.players)
         {
             tryLoginSignal.Dispatch(new Credentials() { username = player.username, password = player.password });
         }
         return;
     }
     //#endif
     //determine if we need to authenticate with the server to fetch a token
     var playerToken = PlayerPrefs.GetString(CtacConst.playerToken);
     if (!string.IsNullOrEmpty(playerToken))
     {
         var newPlayer = new PlayerModel()
         {
             clientId = Guid.NewGuid(),
             token = playerToken
         };
         playersModel.players.Add(newPlayer);
         sendAuthToken(newPlayer);
     }
     else
     {
         needLoginSignal.Dispatch();
     }
 }
 private void onPlayerFetched(PlayerModel p, SocketKey key)
 {
     if (!loginStatuses.ContainsKey(key))
     {
         debug.LogWarning("Key not found in check login statuses");
         return;
     }
     loginStatuses[key].checkSuccess = false;
 }
 public void AddOrUpdate(PlayerModel player)
 {
     var existing = players.FirstOrDefault(x => x.id == player.id);
     if (existing == null)
     {
         players.Add(player);
     }
     else
     {
         player.CopyProperties(existing);
     }
 }
        private void onFetchComplete(PlayerModel player, SocketKey key)
        {
            if (player == null)
            {
                debug.LogError("Failed Fetching Player", key);
            }
            else
            {
                debug.Log("Player Fetched", key);
                var playerModel = playersModel.GetByClientId(key.clientId);
                //kinda nasty save of the couple properties that need to be saved on the original player model
                //that won't be coming across the wire
                var clientId = playerModel.clientId;
                var token = playerModel.token;
                player.CopyProperties(playerModel);

                playerModel.clientId = clientId;
                playerModel.token = token;
                playerModel.isLocal = true;

                socketService.Disconnect(key.clientId, "auth");
            }
        }
 private void onFetchComplete(PlayerModel player, SocketKey key)
 {
     socketService.Request(key.clientId, "gamelist", "token", player.token);
 }
 private void sendAuthToken(PlayerModel playerModel)
 {
     socketService.Request(playerModel.clientId, "auth", "token", playerModel.token );
 }