public async Task AddInTop(TopUserViewModel viewModel) { var user = new TopUser { ConectionId = viewModel.ConectionId, CountMoves = viewModel.Count, Time = viewModel.Time, UserName = viewModel.UserName }; db.TopUsers.Add(user); await db.SaveChangesAsync(); }
public List <TopUser> Index() { List <TopUser> topUsers = new List <TopUser>(); List <ApplicationUser> users = db.Users.ToList(); foreach (var user in users) { var gamesPlayed = db.Games.Where(x => x.User.Id == user.Id).ToList(); var countEasy = gamesPlayed.Where(x => x.Dificulty == Dificulty.Easy).Count(); var countMedium = gamesPlayed.Where(x => x.Dificulty == Dificulty.Medium).Count(); var countHard = gamesPlayed.Where(x => x.Dificulty == Dificulty.Hard).Count(); var totalHints = gamesPlayed.Sum(x => x.Hints); var totalGames = gamesPlayed.Count(); //total points: var points = 0; //máximo pontos num jogo? if (gamesPlayed.Count > 0) { points = gamesPlayed.Max(x => x.Points); } TopUser top = new TopUser { GamesPlayed = new GamesPlayed { Easy = countEasy, Medium = countMedium, Hard = countHard }, Hints = totalHints, TotalGames = totalGames, Name = user.Name, Points = points }; topUsers.Add(top); } return(topUsers.OrderByDescending(x => x.Points).Take(10).ToList()); }
public ActionResult getTopUser() { List <TopUser> topUsers = new List <TopUser>(); var user = userManager.Users.ToList(); foreach (var i in db.booking.GroupBy(e => e.UserId).Select(group => new { count = group.Count(), id = group.Key }).OrderByDescending(a => a.count)) { TopUser use = new TopUser { count = i.count, id = i.id }; ApplicationUser user1 = user.FirstOrDefault(e => e.Id == use.id); use.username = user1.UserName; topUsers.Add(use); } return(Ok(topUsers)); }