Ejemplo n.º 1
0
        public Player GetPlayer(int playerID, DataCache dataCache = null)
        {
            if (UserHelper.HasGetPermissions(playerID: playerID))
            {
                var allPlayers = PlayerDataProvider.GetInstance().GetPlayers(dataCache: dataCache);
                var player     = allPlayers.FirstOrDefault(t => t.ID == playerID);
                var teams      = TeamsService.GetInstance().GetTeams(playerID: playerID, dataCache: dataCache);
                var games      = GamesService.GetInstance().GetGames(playerID: playerID, dataCache: dataCache);

                var selectedPlayer = new Player()
                {
                    ID     = player.ID,
                    Name   = player.Name,
                    Number = player.Number,
                    Teams  = teams,
                    Games  = games
                };

                return(selectedPlayer);
            }
            else
            {
                throw new UnauthorizedAccessException("Nope");
            }
        }
Ejemplo n.º 2
0
        public async Task <bool> SavePlayer(Player player)
        {
            PlayerDataProvider dataProvider = new PlayerDataProvider();
            string             pcId         = Environment.MachineName;
            bool result = await dataProvider.SavePlayer(player, pcId);

            return(result);
        }
Ejemplo n.º 3
0
 public int AddPlayer(Player player, int?teamID = null, int?leagueID = null)
 {
     if (UserHelper.HasUpdatePermissions())
     {
         return(PlayerDataProvider.GetInstance().AddPlayer(ConvertObjects.ConvertType(player), teamID, leagueID));
     }
     else
     {
         throw (new UnauthorizedAccessException("nope"));
     }
 }
Ejemplo n.º 4
0
 public void SavePlayer(Player player)
 {
     if (UserHelper.HasUpdatePermissions())
     {
         var dtoPlayer = ConvertObjects.ConvertType(player);
         PlayerDataProvider.GetInstance().SavePlayer(dtoPlayer);
         foreach (Team t in player.Teams)
         {
             dtoPlayer.Number = t.PlayerNumber;
             dtoPlayer.TeamID = t.ID;
             PlayerDataProvider.GetInstance().SaveTeamPlayer(dtoPlayer);
         }
     }
 }
Ejemplo n.º 5
0
        public List <Player> GetPlayers(int?teamID = null, int?gameID = null, int?leagueID = null, DataCache dataCache = null)
        {
            var players = PlayerDataProvider.GetInstance().GetPlayers(teamID: teamID, gameID: gameID, leagueID: leagueID, dataCache: dataCache);

            if (gameID.HasValue)
            {
                var dtoGame    = GameDataProvider.GetInstance().GetGames(gameID: gameID, dataCache: dataCache).First();
                var game       = ConvertObjects.ConvertType(dtoGame);
                var validTeams = new List <int>()
                {
                    game.Team1ID, game.Team2ID
                };
                if (!players.Exists(p => p.TeamID == game.Team1ID))
                {
                    //ADD TEAM PLAYER
                    var dtoPlayer = new DTOPlayer()
                    {
                        Name   = "Team 1 Player",
                        TeamID = game.Team1ID
                    };
                    players.Add(dtoPlayer);
                }

                if (!players.Exists(p => p.TeamID == game.Team2ID))
                {
                    //ADD TEAM PLAYER
                    var dtoPlayer = new DTOPlayer()
                    {
                        Name   = "Team 2 Player",
                        TeamID = game.Team2ID
                    };
                    players.Add(dtoPlayer);
                }
            }

            return(players
                   .Where(p => UserHelper.HasGetPermissions(playerID: p.ID, gameID: gameID))
                   .Select(p => new Player()
            {
                ID = p.ID,
                Name = p.Name,
                Number = p.Number,
                TeamID = p.TeamID
            })
                   .ToList());
        }
        public async Task <ActionResult <Player> > Post([FromBody] PlayerRoomBody body)
        {
            if (body.Username == null || body.AvatarUrl == null)
            {
                return(NotFound()); // 404 : most of api error
            }
            var roomDataProvider   = new RoomDataProvider();
            var playerDataProvider = new PlayerDataProvider();

            var room = await roomDataProvider.Add();

            var token  = await new TokenDataProvider().Add();
            var player = await playerDataProvider.Add(body.Username, body.AvatarUrl, true, room.Id, token.Id);

            // use `GetPlayer` to include `Token` and `Room`
            return(await playerDataProvider.GetPlayer(player.Id));
        }
        public async Task <ActionResult <Player> > Join(string identifier, [FromBody] PlayerRoomBody body)
        {
            if (body.Username == null || body.AvatarUrl == null)
            {
                return(NotFound()); // 404 : most of api error
            }
            var room = await new RoomDataProvider().GetRoom(identifier);

            if (room == null)
            {
                return(NotFound());
            }
            var playerDataProvider = new PlayerDataProvider();
            var token  = await new TokenDataProvider().Add();
            var player = await playerDataProvider.Add(body.Username, body.AvatarUrl, true, room.Id, token.Id);

            return(await playerDataProvider.GetPlayer(player.Id));
        }
Ejemplo n.º 8
0
        public async Task <ActionResult <Session> > Start([FromBody] StartBody body)
        {
            var sessionDataProvider = new SessionDataProvider();
            var playerDataProvider  = new PlayerDataProvider();
            var elementDataProvider = new ElementDataProvider();
            var addedSession        = await sessionDataProvider.Add(body.RoomId);

            if (addedSession == null)
            {
                return(NotFound());
            }

            var players = await playerDataProvider.GetPlayersByRoom(body.RoomId);

            players.ForEach(async p =>
                            await elementDataProvider.AddSentence(p.Id, p.Id, 1, addedSession.Id));

            await _websocketHandler.SendMessageToSockets(
                JsonSerializer.Serialize(
                    new BaseWebsocketEvent(WebsocketEvent.SessionStart)), body.RoomId);

            return(addedSession);
        }
Ejemplo n.º 9
0
        public Team GetTeam(int teamID, int leagueID, DataCache dataCache = null)
        {
            var team    = TeamDataProvider.GetInstance().GetTeams(teamID: teamID, leagueID: leagueID, dataCache: dataCache).First();
            var players = PlayerDataProvider.GetInstance().GetPlayers(teamID: teamID, leagueID: leagueID, dataCache: dataCache);
            var games   = GamesService.GetInstance().GetGames(teamID: teamID, leagueID: leagueID, dataCache: dataCache);

            var selectedTeam = new Team()
            {
                ID      = team.ID,
                Name    = team.Name,
                Players = players.Select(p => new Player()
                {
                    ID     = p.ID,
                    Name   = p.Name,
                    Number = p.Number
                }).ToList(),
                Games    = games,
                LeagueID = team.LeagueID,
                SportID  = team.SportID
            };

            return(selectedTeam);
        }
Ejemplo n.º 10
0
        public List <PlayerStats> GetAllStats(int?teamID = null, int?sportID = null, int?leagueID = null, int?playerID = null, DataCache dataCache = null)
        {
            var         stats    = GameDataProvider.GetInstance().GetStats(teamID: teamID, leagueID: leagueID, playerID: playerID, dataCache: dataCache);
            var         players  = PlayerDataProvider.GetInstance().GetPlayers(teamID: teamID, leagueID: leagueID, playerID: playerID, dataCache: dataCache);
            List <Team> teamList = new List <Team>();

            if (teamID.HasValue)
            {
                teamList.Add(new Team()
                {
                    ID       = teamID.Value,
                    LeagueID = leagueID.Value,
                    SportID  = sportID.Value
                });
            }
            else
            {
                teamList = TeamsService.GetInstance().GetTeams(leagueID: leagueID, playerID: playerID, showAll: true, dataCache: dataCache);
            }
            var statTypes = GameDataProvider.GetInstance().GetStatTypes(sportID, dataCache: dataCache);
            var gameStats = stats.Select(s => ConvertObjects.ConvertType2(s)).ToList();

            var playerStats = new List <PlayerStats>();

            foreach (var player in players)
            {
                foreach (var team in teamList)
                {
                    var playerStat = new PlayerStats()
                    {
                        TeamID       = team.ID,
                        LeagueID     = team.LeagueID,
                        SportID      = team.SportID,
                        PlayerName   = player.Name,
                        PlayerNumber = teamID.HasValue ? player.Number : team.PlayerNumber,
                        GameID       = 0,
                        PlayerID     = player.ID,
                        Stats        = new List <Stat>()
                    };

                    foreach (var statType in statTypes.Where(st => !st.IsCalculated && st.SportID == team.SportID))
                    {
                        var stat = stats.Where(s => s.StatTypeID == statType.StatTypeID && s.PlayerID == player.ID && s.LeagueID == team.LeagueID).Sum(s => s.Value);
                        playerStat.Stats.Add(new Stat()
                        {
                            Value    = stat,
                            StatType = ConvertObjects.ConvertType(statType)
                        });
                    }

                    playerStats.Add(playerStat);
                }
            }

            foreach (var playerStat in playerStats)
            {
                var playerGameStats = gameStats.Where(g => g.PlayerID == playerStat.PlayerID && g.LeagueID == playerStat.LeagueID).ToList();
                foreach (var calcStat in statTypes.Where(st => st.IsCalculated && st.SportID == playerStat.SportID))
                {
                    playerStat.Stats.Add(new Stat()
                    {
                        StatType = ConvertObjects.ConvertType(calcStat),
                        Value    = StatsCalculations.GetValue((CalculatedStatTypes)calcStat.StatTypeID, playerGameStats)
                    });
                }
            }
            return(playerStats);
        }
        public void ProviderTest()
        {
            var provider = new PlayerDataProvider();

            provider.Initialize();
        }
Ejemplo n.º 12
0
 public void ConstructWithInjection(PlayerDataProvider playerDataProvider)
 {
     _playerDataProvider = playerDataProvider;
 }