private static void FillPlayerConfig(MilleBornesEntities context, Room roomEntity, Game newGame) { // Essayer en premier lieu avec le service, sinon // regarder directement dans la base de données. List<PlayerGame> playerGameSource = new List<PlayerGame>(); #if false try { using (var client = new LobbyGameProxy.LobbyServiceClient()) { var configEntries = client.GetPlayerConfig(roomEntity.Token); foreach (var entry in configEntries) { var user = context.User .Where(us => us.LoggedInUser != null) .SingleOrDefault(us => us.LoggedInUser.Token == entry.UserToken); if (user == null) { continue; } var playerGame = new PlayerGame() { Game = newGame, UserId = user.UserId, User = user, LastHeartbeat = DateTime.UtcNow, Order = entry.Order, Team = entry.Team + 1, HasJoined = user.UserId == roomEntity.MasterUserId }; } } } #endif //catch (Exception ex) //{ playerGameSource = roomEntity.PlayerRoomState.Select((prs, inx) => new PlayerGame() { Game = newGame, UserId = prs.UserId, User = prs.User, LastHeartbeat = DateTime.UtcNow, Order = inx, Team = prs.Team + 1, HasJoined = prs.UserId == roomEntity.MasterUserId }) .ToList(); //} newGame.PlayerGame = playerGameSource; }
private bool ValidatePlayerHeartbeat(PlayerGame playerGame) { DateTime currentTime = DateTime.UtcNow; return (currentTime - playerGame.LastHeartbeat).TotalMilliseconds <= 20000; }