private List <Word> ChooseByLevel(User user, List <Word> words) { int hardLevel = _random.Next(0, 101); List <Word> result = new List <Word>(); int currentLevel = user.LevelId; foreach (var word in words) { var level = _levelService.GetByWord(user.Id, word.Id); if (level == null) { continue; } if (hardLevel >= 0 && hardLevel < 15) { if (level.Id < currentLevel) { result.Add(word); } } if (hardLevel >= 15 && hardLevel < 85) { if (level.Id == currentLevel) { result.Add(word); } } if (hardLevel >= 85 && hardLevel <= 100) { if (level.Id > currentLevel) { result.Add(word); } } } return(result); }