/// <summary> /// Methode pour lancer la deserialisation d'un fichier chiffre /// </summary> /// <param name="Chiffrement">Chiffrement du fichier</param> /// <param name="ListeDossier">L'arborescence qui va recuperer le resultat de la deserialisation</param> private static void CaseDeserialisation(Rijndael Chiffrement, ref Dossier ListeDossier) { // Si nous n'avons pas serialiser avant ou que notre base de donnee a ete supprime, on ne peut pas deserialiser if (Constantes.ChoixSerialisation == null) { Console.WriteLine("Le fichier de Serialisation n'existe pas (vous n'avez peut etre pas serialiser de donnee)\n"); } else { // Si l'utilisateur saisit un mot de passe invalide, alors on supprime la base de donnee if (!SaisieUtilisateur.MotDePasseValide()) { Constantes.ChoixSerialisation = null; File.Delete(Constantes.CheminFichierChiffrer); Console.WriteLine("Mot de passe Invalide 3 tentatives .. Suppression de la Base de donnée\n"); } // Sinon on essaie de deserialiser else { try { Constantes.ChoixSerialisation.Deserialise(Chiffrement, ref ListeDossier); Constantes.ChoixSerialisation = null; } catch (FileNotFoundException) { Console.WriteLine("Le fichier n'existe pas\n"); } } } }
/// <summary> /// Methode pour le lancement de la serialisation de notre arborescence /// </summary> /// <param name="Chiffrement">Chiffrement du fichier</param> /// <param name="ListeDossier">L'arborescence que l'on veut chiffrer</param> private static void CaseSerialisation(Rijndael Chiffrement, Dossier ListeDossier) { // Si l'arborescence est null, on ne peut pas serialiser if (ListeDossier == null) { Console.WriteLine("Il n'y a rien a Serialiser\n"); } else { Console.WriteLine("Comment voulez vous Serialiser votre arborescence ? "); Console.WriteLine("Taper 1 pour une serialisation binaire"); Console.WriteLine("Taper 2 pour une serialisation XML\n"); int ChoixUtilisateur; do { try { ChoixUtilisateur = SaisieUtilisateur.ChoixUtilisateurValide(); } catch (FormatException) { ChoixUtilisateur = -1; Console.WriteLine("Combinaison Invalide"); } } while ((ChoixUtilisateur != 1) && (ChoixUtilisateur != 2)); // Utilisation du pattern Factory if (ChoixUtilisateur == 1) { Constantes.ChoixSerialisation = new SerialisationBinaire(); } else { Constantes.ChoixSerialisation = new SerialisationXML(); } SaisieUtilisateur.ChoixCleChiffrement(ref Chiffrement); Constantes.ChoixSerialisation.Serialise(Chiffrement, ListeDossier); // On creer un mot de passe pour le fichier SaisieUtilisateur.ChoixMotDePasse(); } }
/// <summary> /// On effectue la recherche d'un dossier dans une arborescence /// </summary> /// <param name="ListeDossier">Arborescence ou l'on recherche un dossier</param> /// <returns>Le dossier recherche</returns> private static Dossier RechercheDossier(Dossier ListeDossier) { Dossier DossierParent = null; int ChoixUtilisateur; while (DossierParent == null) { Console.WriteLine(ListeDossier.ToString(false)); try { ChoixUtilisateur = SaisieUtilisateur.ChoixUtilisateurValide(); DossierParent = ListeDossier.RechercherDossier(ChoixUtilisateur); } catch (FormatException) { Console.WriteLine("Dossier Inexistant"); } } return(DossierParent); }
/// <summary> /// Formulaire pour la creation d'un nouveau contact /// </summary> /// <returns>Le contact</returns> private static Contact FormulaireCreationContact() { Console.WriteLine("Quel est le nom de votre contact ?"); string NomContact = Console.ReadLine(); Console.WriteLine("\nQuel est le prenom de votre contact ?"); string PrenomContact = Console.ReadLine(); Console.WriteLine("\nQuel est la societe de votre contact ?"); string SocieteContact = Console.ReadLine(); Console.WriteLine("\nQuel est le courrier de votre contact ? (adresse email valide)\n"); bool IsCourrielValid = false; string CourrielContact = null; while (!IsCourrielValid) { CourrielContact = Console.ReadLine(); IsCourrielValid = Contact.IsValidCourriel(CourrielContact); } AffichageRelation(); int RelationContact = -1; bool IsRelationValide; do { try { RelationContact = SaisieUtilisateur.ChoixUtilisateurValide(); IsRelationValide = true; } catch (FormatException e) { IsRelationValide = false; Console.WriteLine(e.Message); } } while (!IsRelationValide); return(new Contact(NomContact, PrenomContact, CourrielContact, SocieteContact, LienMethodeStatique.IntToLien(RelationContact))); }
/// <summary> /// Fonction Main du programme /// </summary> /// <param name="args">Aucun argument en ligne de commande pour cette solution </param> static void Main(string[] args) { bool Running = true; Dossier ListeDossier = null; int EntierChoixUtilisateur; Rijndael Chiffrement = Rijndael.Create(); do { AffichageMenu(); try { EntierChoixUtilisateur = SaisieUtilisateur.ChoixUtilisateurValide(); Running = ChoixMethode(ref ListeDossier, Chiffrement, EntierChoixUtilisateur); } catch (FormatException) { Console.Write("Instruction inconnue\n"); } } while (Running); }