Ejemplo n.º 1
0
        public async Task <PlayerInformationArrayHolder> GetHighestScoringPlayers(string filterDate, string filterLevel, int amountOfScores)
        {
            if (amountOfScores < 1) //show a minimum of top 1
            {
                amountOfScores = 1;
            }
            var players = await collection.Find(FilterDefinition <Player> .Empty).ToListAsync();

            if (filterDate == "today")
            {
                foreach (var player in players)
                {
                    var list = new List <Run>(player.Runs);
                    list        = list.OrderBy(x => x.TimeTaken).ToList();
                    list        = list.Where(val => DateTime.Today.Subtract(val.TimePosted).TotalDays < 1).ToList();
                    player.Runs = list.ToArray();
                }
            }
            else if (filterDate == "week")
            {
                foreach (var player in players)
                {
                    if (player.Runs.Count() == 0)
                    {
                        continue;
                    }
                    var list = new List <Run>(player.Runs);
                    list        = list.OrderBy(x => x.TimeTaken).ToList();
                    list        = list.Where(val => DateTime.Today.Subtract(val.TimePosted).TotalDays < 7).ToList();
                    player.Runs = list.ToArray();
                }
            }

            foreach (var player in players)
            {
                var list = new List <Run>(player.Runs);
                list        = list.OrderBy(x => x.TimeTaken).ToList();
                player.Runs = list.ToArray();
            }
            players = players.OrderBy(x => x.Runs[0].TimeTaken).ToList();

            List <PlayerInformation> playerList = new List <PlayerInformation>();

            foreach (var player in players)
            {
                playerList.Add(player.GetPlayerInformation());
            }
            while (playerList.Count > amountOfScores)
            {
                playerList.RemoveAt(playerList.Count - 1);
            }

            var playerArray = new PlayerInformationArrayHolder();

            playerArray.InfoArray = playerList.ToArray();
            return(playerArray);
        }
Ejemplo n.º 2
0
        public async Task <PlayerInformationArrayHolder> GetAllPlayers()
        {
            var players = await collection.Find(new BsonDocument()).ToListAsync();

            List <PlayerInformation> playerList = new List <PlayerInformation>();

            foreach (var player in players)
            {
                playerList.Add(player.GetPlayerInformation());
            }
            var playerArray = new PlayerInformationArrayHolder();

            playerArray.InfoArray = playerList.ToArray();
            return(playerArray);
        }
Ejemplo n.º 3
0
        public async Task <PlayerInformationArrayHolder> GetAllPlayers(string name)
        {
            FilterDefinition <Player> filter = Builders <Player> .Filter.Eq(p => p.Name, name);

            var players = await collection.Find(filter).ToListAsync();

            if (players == null)
            {
                throw new NotFoundException();
            }

            List <PlayerInformation> playerList = new List <PlayerInformation>();

            foreach (var player in players)
            {
                playerList.Add(player.GetPlayerInformation());
            }
            var playerArray = new PlayerInformationArrayHolder();

            playerArray.InfoArray = playerList.ToArray();
            return(playerArray);
        }