public void RewardBadges(ApplicationUser user, Challenge current)
 {
     foreach (var kv in _rewarders)
     {
         if (user.HasBadge(kv.Key))
         {
             kv.Value.ChangeBadge(user.GiveBadge(kv.Key), user, current);
         }
         else
         {
             var newBadge = kv.Value.GenerateNewBadge(user, current);
             if (newBadge != null)
             {
                 user.Badges.Add(newBadge);
             }
         }
     }
 }
        public Badge GenerateNewBadge(ApplicationUser user, Challenge currentChallenge)
        {
            var levels = new string[] { "level1", "level2", "level3", "level4", "level5", "level6" };

            foreach (var level in levels)
            {
                if (user.HasBadge(level))
                {
                    return(null);
                }
            }
            if (user.Points == 0)
            {
                return new Badge()
                       {
                           Name = "level1", Description = "Level one reached."
                       }
            }
            ;
            return(null);
        }
    }
 public Badge GenerateNewBadge(ApplicationUser user, Challenge currentChallenge)
 {
     var levels = new string[] { "level1", "level2", "level3", "level4", "level5", "level6" };
     foreach (var level in levels)
         if (user.HasBadge(level))
             return null;
     if (user.Points == 0)
         return new Badge() { Name = "level1", Description = "Level one reached." };
     return null;
 }
        public void RewardBadges(ApplicationUser user, Challenge current)
        {
            foreach (var kv in _rewarders) {

                if (user.HasBadge(kv.Key))
                    kv.Value.ChangeBadge(user.GiveBadge(kv.Key), user, current);
                else {
                    var newBadge = kv.Value.GenerateNewBadge(user, current);
                    if (newBadge != null)
                        user.Badges.Add(newBadge);
                }
            }
        }