Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 private bool ValidatePlayerHeartbeat(PlayerGame playerGame)
 {
     DateTime currentTime = DateTime.UtcNow;
     return (currentTime - playerGame.LastHeartbeat).TotalMilliseconds <= 20000;
 }