public void UpdateScore(User u, int challengeId)
        {
            Challenge challenge = _db.Set<Challenge>().Where(x => x.Id == challengeId).FirstOrDefault();

            Score score = _db.Set<Score>().Where(x => (x.UserId == u.Id) && (x.Challenge.Id == challenge.Id)).FirstOrDefault();
            score.Points = CalculateScore(u.Difficulty, challenge.Difficulty);
            _db.SaveChanges();
        }
        public int GetUserScore(User u)
        {
            List<Score> scores = GetAllUserScores(u);

            int totalScore = 0;

            foreach(Score s in scores)
            {
                totalScore += s.Points;
            }

            return totalScore;
        }
        public void AddNewScore(User u, int challengeId)
        {
            Challenge challenge = _db.Set<Challenge>().Where(x => x.Id == challengeId).FirstOrDefault();

            Score score = new Score()
            {
                Challenge = challenge,
                User = u,
                UserId = u.Id,
                Points = 0
            };

            _db.Set<Score>().Add(score);
            _db.SaveChanges();
        }
 public UserModel MapToUserModel(User entity)
 {
     if (entity != null)
     {
         return new UserModel()
         {
             NmbrOfChildren = entity.NmbrOfChildren,
             Email = entity.Email,
             UserName = entity.Email,
             IsStudent = entity.IsStudent,
             Language = entity.Language,
             BirthDate = entity.BirthDate,
             Gender = entity.Gender,
             Difficulty = entity.Difficulty,
             SendNewsletter = entity.SendNewsletter
         };
     }
     else return new UserModel();
 }
 public List<Score> GetAllUserScores(User u)
 {
     return _db.Set<Score>().Where(x => x.UserId == u.Id).ToList();
 }
 public int InsertUser(User u)
 {
     _db.Set<User>().Add(u);
     return _db.SaveChanges();
 }
 public void DeleteUser(User u)
 {
     _db.Set<User>().Remove(u);
 }