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); }
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); }
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); }