public List <HighscoresProfile> getTop10(string orderBy) { IQueryable <Users> Query = _context.users; switch (orderBy) { case "high": Query = Query.OrderByDescending(d => d.Stats.highestScore); break; case "total": Query = Query.OrderByDescending(d => d.Stats.totalScore); break; } var userList = Query.ToList(); foreach (var user in userList) { user.Stats = _statsService.getByUserId(user.Id); } var highscoreProfiles = new List <HighscoresProfile>(); if (userList.Count > 10) { for (int i = 0; i < 10; i++) { var highscore = new HighscoresProfile(); highscoreProfiles.Add(highscore); highscoreProfiles[i].ranking = i + 1; highscoreProfiles[i].highestScore = userList[i].Stats.highestScore; highscoreProfiles[i].userName = userList[i].Username; highscoreProfiles[i].totalFailed = userList[i].Stats.totalFailed; highscoreProfiles[i].totalLost = userList[i].Stats.totalLost; highscoreProfiles[i].totalScore = userList[i].Stats.totalScore; highscoreProfiles[i].totalSucces = userList[i].Stats.totalSucces; } } if (userList.Count < 10) { for (int i = 0; i < userList.Count; i++) { var highscore = new HighscoresProfile(); highscoreProfiles.Add(highscore); highscoreProfiles[i].ranking = i + 1; highscoreProfiles[i].highestScore = userList[i].Stats.highestScore; highscoreProfiles[i].userName = userList[i].Username; highscoreProfiles[i].totalFailed = userList[i].Stats.totalFailed; highscoreProfiles[i].totalLost = userList[i].Stats.totalLost; highscoreProfiles[i].totalScore = userList[i].Stats.totalScore; highscoreProfiles[i].totalSucces = userList[i].Stats.totalSucces; } } return(highscoreProfiles); }
public HighscoresProfile getUserHsList(string orderBy, int id) { var user = GetById(id); var stats = _statsService.getByUserId(id); var ranking = 0; var highscoreProfile = new HighscoresProfile(); IQueryable <Users> userQuery = _context.users; switch (orderBy) { case "high": userQuery = userQuery.OrderByDescending(d => d.Stats.highestScore); break; case "total": userQuery = userQuery.OrderByDescending(d => d.Stats.totalScore); break; } var userList = userQuery.ToList(); foreach (var _user in userList) { ranking++; if (user.Username == _user.Username) { highscoreProfile.ranking = ranking; highscoreProfile.highestScore = stats.highestScore; highscoreProfile.totalFailed = stats.totalFailed; highscoreProfile.totalLost = stats.totalLost; highscoreProfile.totalScore = stats.totalScore; highscoreProfile.totalSucces = stats.totalSucces; highscoreProfile.userName = user.Username; } } return(highscoreProfile); }