static void Remove(string[] args) { GuardClauses.TriedToRemoveNothing(args); var loadedList = WordList.LoadList(args[1]); GuardClauses.LoadedListReturnsNull(loadedList, args[1]); int index = Array.FindIndex(loadedList.Languages, l => l.Contains(args[2])); GuardClauses.TheLanguageDoesNotExistInThisList(index); string[] word = args.Skip(3).ToArray(); for (int i = 0; i < word.Length; i++) { if (loadedList.Remove(index, word[i]) == false) { Console.WriteLine($"The word '{word[i]}' does not exist in this list."); } else { Console.WriteLine($"Removed '{word[i]}' from the list."); } } loadedList.Save(); }
static void AddWords(string[] args) { GuardClauses.NoSelectedList(args); var loadedList = WordList.LoadList(args[1]); GuardClauses.LoadedListReturnsNull(loadedList, args[1]); bool addWords = true; Regex forbiddenChars = new Regex("[0-9;\r\n]+"); while (addWords) { string[] translations = new string[loadedList.Languages.Length]; for (int i = 0; i < loadedList.Languages.Length; i++) { Console.Write($"{loadedList.Languages[i].ToUpper()}: "); translations[i] = Console.ReadLine(); if (translations[i] == "") { addWords = false; break; } translations[i] = forbiddenChars.Replace(translations[i], "").Trim(); } if (!translations.Contains("")) { loadedList.Add(translations); } } loadedList.Save(); }
static void CountWordsInSelectedList(string[] args) { GuardClauses.NoSelectedList(args); var loadedList = WordList.LoadList(args[1]); GuardClauses.LoadedListReturnsNull(loadedList, args[1]); Console.WriteLine($"There's {loadedList.Count()} words in '{loadedList.Name}'"); }
static void CreateNewList(string[] args) { GuardClauses.InputMissingParameters(args); WordList newList = new WordList(args[1], args.Skip(2).ToArray()); newList.Save(); Console.WriteLine($"A new list called {args[1]} was successfully created."); AddWords(args); }
static void SortList(string[] args) { GuardClauses.NoSelectedList(args); var loadedList = WordList.LoadList(args[1]); GuardClauses.LoadedListReturnsNull(loadedList, args[1]); GuardClauses.SelectedListDoesntContainWords(loadedList); if (args.Length < 3) { loadedList.List(0, ShowTranslation); } else { GuardClauses.SelectedListDoesntContainLanguage(loadedList, args[2]); string language = args[2]; int index = Array.FindIndex(loadedList.Languages, l => l.Contains(language)); loadedList.List(index, ShowTranslation); } }
static void PracticeWords(string[] args) { GuardClauses.NoSelectedList(args); var loadedList = WordList.LoadList(args[1]); GuardClauses.LoadedListReturnsNull(loadedList, args[1]); GuardClauses.SelectedListDoesntContainWords(loadedList); PracticeConsole.ResetPractice(); while (true) { Word randomWord = loadedList.GetWordToPractice(); PracticeConsole practiceMode = new PracticeConsole(randomWord, loadedList); practiceMode.Play(); string userInput = Console.ReadLine(); if (userInput == "") { practiceMode.PrintTotalScore(); break; } practiceMode.PrintRightOrWrong(userInput); } }