protected override async Task <string> GetTargetId() { var playerId = playerData.Id; var usersTable = database.GetTable <Server.Player>(); //TODO query not the whole table, but a limited chunck of players selected randomly var otherPlayers = await usersTable.Where(u => u.Id != playerId).ToListAsync(); var result = otherPlayers[Random.Range(0, otherPlayers.Count)]; database.CachePlayer(result); return(result.Id); }
private async Task AzureInit() { var playersTable = database.GetTable <Server.Player>(); var playerQuery = playersTable.Where(u => u.DeviceId == SystemInfo.deviceUniqueIdentifier); var currentPlayerEntity = (await playersTable.ReadAsync(playerQuery)).FirstOrDefault(); if (currentPlayerEntity != null) { id = currentPlayerEntity.Id; } else { var playerName = await GetPlayerNameInput(); currentPlayerEntity = CreateNewUser(playerName); await playersTable.InsertAsync(currentPlayerEntity); id = currentPlayerEntity.Id; } database.CachePlayer(currentPlayerEntity); }