/// <summary> /// Lit et interprète la commande de l'utilisateur. /// </summary> /// <returns>Un booléen qui indique si l'utilisateur continue l'exécution.</returns> private bool ParseAnswer() { Console.ForegroundColor = ConsoleColor.Green; Console.Write(_contactManager.GetPrompt()); Console.ResetColor(); string userResponse = Console.ReadLine(); string command = userResponse.Split(" ")[0]; string[] arguments = userResponse.Split(" ").Skip(1).ToArray(); switch (command) { case "afficher": Console.WriteLine(_contactManager); break; case "enregistrer": SaveToFile(_serializationType); break; case "charger": LoadFromFile(_serializationType); break; case "ajouterdossier": case "addfolder": if (arguments.Length == 0) { Console.WriteLine("Syntaxe incorrecte. Utilisez: ajouterdossier nom"); } else { _contactManager.AddFolder(arguments[0]); } break; case "ajoutercontact": case "addcontact": if (arguments.Length < 5) { Console.WriteLine("Syntaxe incorrecte. Utilisez: ajoutercontact nom prenom email entreprise lien"); } else { try { if (_contactManager.AddContact(arguments[0], arguments[1], arguments[2], arguments[3], (Link)Enum.Parse(typeof(Link), arguments[4]))) { Console.WriteLine("Contact ajouté"); } else { Console.Error.WriteLine("Format de l'email invalide"); } } catch (ArgumentException e) { Console.Error.WriteLine($"Ajout du contact impossible: {e.Message}"); } } break; case "cd": if (arguments.Length == 0) { Console.WriteLine("Syntaxe incorrecte. Utilisez: cd chemin. Par exemple: cd ../../dossier1/mondossier"); } else { _contactManager.ChangeDirectory(arguments[0]); } break; case "typeserialisation": if (arguments.Length == 0) { Console.WriteLine("Syntaxe incorrecte. Utilisez: typeserialisation type. Par exemple: typeserialisation xml"); } else { _serializationType = arguments[0]; Console.WriteLine($"Le type de serialisation utilisé a été modifié en: {_serializationType}"); } break; case "sortir": case "quit": return(false); case "": case "help": ShowHelp(); break; default: Console.WriteLine($"La commande \"{command}\" n'a pas été reconnue. Faites help pour avoir la liste."); break; } return(true); }