コード例 #1
0
        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();
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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));
        }