private void WaitCommand() { Console.WriteLine("Pour définir un nouveau montant, tappez M suivi du nouveau montant. Exemple :"); Console.WriteLine("M 2500"); Console.WriteLine("Pour définir une nouvelle devise de de départ, tappez D suivi de la devise. Exemple :"); Console.WriteLine("D USD"); Console.WriteLine("Pour définir une nouvelle devise de d'arrivée, tappez A suivi de la devise. Exemple :"); Console.WriteLine("A EUR"); Console.WriteLine("Pour définir un nouveau fichier de calcul, tappez F suivi du chemin du fichier Exemple :"); Console.WriteLine("F D:/Fichier de conversion"); Console.WriteLine("Pour lancer une conversion avec les paramètres actuels, tappez C."); Console.WriteLine("Pour quitter, tappez Q."); bool wait = true; while (wait) { var commandString = Console.ReadLine(); switch (commandString.Substring(0, 1)) { case "M": if (decimal.TryParse(commandString.Substring(2), out decimal amount)) { GraphManager.SetNewAmount(amount); Console.WriteLine($"Nouveau montant : {amount}"); } else { Console.WriteLine("Dois-je expliquer à quoi ressemble un montant?"); } break; case "D": var startCurrency = commandString.Substring(2); if (GraphManager.IsCurrency(startCurrency)) { try { GraphManager.SetNewStartCurrency(startCurrency); Console.WriteLine($"Nouvelle devise : {startCurrency}"); } catch (ArgumentException e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Trois lettres pour une devise. Il y a un exemple au dessus."); } break; case "A": var endCurrency = commandString.Substring(2); if (GraphManager.IsCurrency(endCurrency)) { try { GraphManager.SetNewFinalCurrency(endCurrency); Console.WriteLine($"Nouvelle devise : {endCurrency}"); } catch (ArgumentException e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Trois lettres pour une devise. Il y a un exemple au dessus."); } break; case "F": StringBuilder errorMessage = new StringBuilder(); var result = GraphManager.ConvertCurrenciesFromFile(commandString.Substring(2), errorMessage); if (result.HasValue) { Console.WriteLine(result.Value); } Console.WriteLine(errorMessage.ToString()); break; case "C": if (GraphManager.graph.FindShortestPath()) { Console.WriteLine(GraphManager.graph.Convert()); } else { Console.WriteLine("Il n'y a pas de conversion possible entre ces deux montants."); } break; case "Q": wait = false; break; default: Console.WriteLine("Il semble y avoir un problème de compréhension entre vous et moi."); break; } } }