private static bool UserHasHighscores(string username)
 {
     using (var context = new TetrisDbContext())
     {
         return(UserExists(username) && context.Users.FirstOrDefault(u => u.Name == username).HighScores != null);
     }
 }
 private static bool UserExists(string username)
 {
     using (var context = new TetrisDbContext())
     {
         return(context.Users.FirstOrDefault(u => u.Name == username) != null);
     }
 }
 public User GetUserById(int userId)
 {
     using (var context = new TetrisDbContext())
     {
         return(context.Users.FirstOrDefault(u => u.Id == userId));
     }
 }
 public ICollection <HighScore> GetTopTenHighScores()
 {
     using (var context = new TetrisDbContext())
     {
         var highscores = context.HighScores.OrderByDescending(h => h.Points).Include(h => h.User).Take(10).ToList();
         return(highscores);
     }
 }
 public List <HighScore> GetScoresByUsername(string username)
 {
     if (username == null || !UserExists(username))
     {
         return(new List <HighScore>());
     }
     if (!UserHasHighscores(username))
     {
         return(new List <HighScore>());
     }
     using (var context = new TetrisDbContext())
     {
         return(context.Users.FirstOrDefault(u => u.Name == username).HighScores.OrderByDescending(h => h.Points).ToList());
     }
 }
 public void AddScore(string username, long points)
 {
     if (string.IsNullOrEmpty(username) || !UserExists(username))
     {
         return;
     }
     using (var context = new TetrisDbContext())
     {
         var user      = context.Users.FirstOrDefault(u => u.Name == username);
         var highscore = new HighScore
         {
             User   = user,
             Points = points,
             Date   = DateTime.Now
         };
         context.HighScores.Add(highscore);
         context.SaveChanges();
     }
 }
        public void LoginUser(string username)
        {
            User user = new User()
            {
                Name = username
            };

            using (var context = new TetrisDbContext())
            {
                if (context.Users.Any(u => u.Name == username))
                {
                    var userFromDb = context.Users.First(u => u.Name == username);
                    AuthenticationManager.Login(userFromDb);
                }
                else
                {
                    context.Users.Add(user);
                    context.SaveChanges();
                    AuthenticationManager.Login(user);
                }
            }
        }