/* * /// <summary> * /// Permet de modifier un des attributs en particulier, sans toucher aux autres * /// </summary> * /// <returns>1 si un attribut a été modifié, 0 si non</returns> * public virtual int SaisiePartielle() * { * string choix; * int sortie = 0; * int borneSub = 49; * * if (this.Description.Length <= 49) borneSub = this.Description.Length; * * //Chaque attribut est associé à un code pour pouvoir le choisir * Console.WriteLine(Affichage.Titre1("Modifier un champ")); * Console.WriteLine("Quel champ voulez-vous modifier ?\n" + * " 1. Reference (" + this.Reference + ") \n" + * " 2. Titre (" + this.Titre + ") \n" + * " 3. Description (" + this.Description.Substring(0,borneSub) + "..." + ") \n" + * " 4. Genre (" + this.GenreS + ") \n" + * " 5. Année de parution (" + this.AnneeParution + ") \n" + * " 6. ...\n"); * * //L'utilisateur fait son choix * choix = Console.ReadLine(); * * //En fonction de ce choix ... * //Pour chaque possibilité, on regarde si le choix de l'utilisateur correspond à un code * //Ou s'il a entré le nom du choix (le ToLower permet de ne pas se soucier de la casse) * if(choix.ToLower().Contains("reference") || choix.ToLower().Contains("1")) * { * this.SaisieRef(); * sortie = 1; * } * if (choix.ToLower().Contains("titre") || choix.ToLower().Contains("2")) * { * this.SaisieTitre(); * sortie = 1; * } * if (choix.ToLower().Contains("description") || choix.ToLower().Contains("3")) * { * this.SaisieDescription(); * sortie = 1; * } * if (choix.ToLower().Contains("genre") || choix.ToLower().Contains("4")) * { * this.SaisieGenre(); * sortie = 1; * } * if (choix.ToLower().Contains("parution") || choix.ToLower().Contains("5")) * { * this.SaisieAnnee(); * sortie = 1; * } * * return sortie; * }*/ #endregion /// <summary> /// Permet de modifier un des attributs en particulier, sans toucher aux autres /// </summary> /// <returns>1 si un attribut a été modifié, 0 si non</returns> public virtual void SaisiePartielle() { string choix; int borneSub = 49; //Réduit l'affichage de la description si celle-ci fait plus de 49 caractères if (this.Description.Length <= 49) { borneSub = this.Description.Length; } string desc; if (borneSub == 49) { desc = this.Description.Substring(0, borneSub) + "..."; } else { desc = this.Description; } //Chaque attribut est associé à un code pour pouvoir le choisir Console.WriteLine(Affichage.Titre1("Modifier un champ")); Console.WriteLine("Quel champ voulez-vous modifier ?\n" + " 1. Reference (" + this.Reference + ") \n" + " 2. Titre (" + this.Titre + ") \n" + " 3. Description (" + desc + ") \n" + " 4. Genre (" + this.GenreS + ") \n" + " 5. Année de parution (" + this.AnneeParution + ") \n" + this.ChoixEnfant()); //L'utilisateur fait son choix choix = Console.ReadLine(); //En fonction de ce choix ... //Pour chaque possibilité, on regarde si le choix de l'utilisateur correspond à un code //Ou s'il a entré le nom du choix (le ToLower permet de ne pas se soucier de la casse) if (choix.ToLower().Contains("reference") || choix == "1") { this.SaisieRef(); } if (choix.ToLower().Contains("titre") || choix == "2") { this.SaisieTitre(); } if (choix.ToLower().Contains("description") || choix == "3") { this.SaisieDescription(); } if (choix.ToLower().Contains("genre") || choix == "4") { this.SaisieGenre(); } if (choix.ToLower().Contains("parution") || choix == "5") { this.SaisieAnnee(); } this.SaisiePartielleEnfant(choix); }
/// <summary> /// Saisie dans la console des acteurs principaux /// </summary> private void SaisieActeurs() { try { Console.Write("-- Acteurs Principaux ? "); //Pour ajouter un acteur à la liste, l'utilisateur entre son nom et appuie sur Entrée Console.Write("\n----- Tapez le nom de l'acteur puis appuyez sur 'Entrée' pour l'ajouter à la liste."); //Il pourra faire cette manipulation jusqu'à ce qu'il entre "stop" Console.Write("\n----- Tapez \"stop\" quand la liste est complète.\n"); string s; List <string> act = new List <string>(); //L'utilisateur saisira toujours au moins un mot, on peut utiliser une boucle do-while do { //La fonction Trim permet d'enlever les espaces inutiles au début et à la fin de l'entrée de l'utilisateur //Permet d'éviter un certain nombre d'erreurs d'inattention lors de la saisie s = Console.ReadLine().Trim(); if (s != "stop") { act.Add(s); } } while (s != "stop"); this.Acteurs = act; } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Permet de modifier un des attributs en particulier, sans toucher aux autres /// </summary> /// <returns>1 si un attribut a été modifié, 0 si non</returns> public virtual void SaisiePartielle() { string choix; //Chaque attribut est associé à un code pour pouvoir le choisir Console.WriteLine(Affichage.Titre1("Modifier un champ")); Console.WriteLine("Quel champ voulez-vous modifier ?\n" + " 1. Nom (" + this.Nom + ") \n" + " 2. Adresse (" + this.Adresse + ") \n" + " 3. Code Postal (" + this.CodePostal + ") \n" + " 4. Ville (" + this.Ville + ") \n"); //L'utilisateur fait son choix choix = Console.ReadLine(); //En fonction de ce choix ... //Pour chaque possibilité, on regarde si le choix de l'utilisateur correspond à un code //Ou s'il a entré le nom du choix (le ToLower permet de ne pas se soucier de la casse) if (choix.ToLower().Contains("nom") || choix == "1") { this.SaisieNom(); } if (choix.ToLower().Contains("adresse") || choix == "2") { this.SaisieAdresse(); } if (choix.ToLower().Contains("code") || choix == "3") { this.SaisieCodePostal(); } if (choix.ToLower().Contains("ville") || choix == "4") { this.SaisieVille(); } }
/// <summary> /// Saisit le nom de la médiathèque via la console /// </summary> private void SaisieNom() { Console.Write("-- Nom de la médiatèque ? "); this.Nom = Console.ReadLine(); if (this.Nom == "") { Console.WriteLine(Affichage.Erreur("Champ vide. Vous pourrez modifier cette information ultérieurement.")); } }
/// <summary> /// Saisit la ville de la médiathèque via la console /// </summary> private void SaisieVille() { Console.Write("-- Ville ? "); this.Ville = Console.ReadLine(); if (this.Ville == "") { Console.WriteLine(Affichage.Erreur("Champ vide. Vous pourrez modifier cette information ultérieurement.")); } }
/// <summary> /// Saisie dans la console de l'éditeur /// </summary> private void SaisieEditeur() { try { Console.Write("-- Editeur ? "); this.Editeur = Console.ReadLine(); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console du genre /// </summary> private void SaisieGenre() { try { Console.Write("-- Genre ? "); this.GenreS = Console.ReadLine(); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console de la durée /// </summary> private void SaisieDurée() { try { Console.Write("-- Durée (en minutes) ? "); this.Durée = Int32.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console du nombre de pages /// </summary> private void SaisieNbPages() { try { Console.Write("-- Nombre de Pages ? "); this.NbPages = Int32.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console du scénariste /// </summary> private void SaisieScenariste() { try { Console.Write("-- Scénariste ? "); this.Scenariste = Console.ReadLine(); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console du studio /// </summary> private void SaisieStudio() { try { Console.Write("-- Studio ? "); this.Studio = Console.ReadLine(); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console de la description/du résumé /// </summary> private void SaisieDescription() { try { Console.Write("-- Description ? "); this.Description = Console.ReadLine(); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Saisie dans la console de l'année de parution /// </summary> private void SaisieAnnee() { try { Console.Write("-- Année de parution (Format : JJ/MM/YYYY ou JJ/MM/YYYY HH:mm:s) ? "); this.AnneeParution = DateTime.Parse(Console.ReadLine()); } //Le premier catch va intercepter les exceptions levées lorsque l'utilisateur entre une date qui ne respecte pas les formats imposés catch (FormatException) { Console.WriteLine(Affichage.Erreur("La date ne respecte pas les formats ci-dessus.")); } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } }
/// <summary> /// Permet de modifier complètement la valeur de tous les attributs depuis la console /// </summary> public virtual void Saisie() { //Mise en évidence dans la console du but de la fonction Console.WriteLine(Affichage.Titre1("Saisie d'un nouveau media")); //Mise à jour des différents attributs this.SaisieRef(); this.SaisieTitre(); this.SaisieDescription(); this.SaisieGenre(); this.SaisieAnnee(); //La date d'entrée du média devient la date de dernière modification this.DateEntree = DateTime.Now; }
/// <summary> /// Saisit le code postal de la médiathèque via la console /// </summary> private void SaisieCodePostal() { Console.Write("-- Code Postal ? "); try { int cp = Int32.Parse(Console.ReadLine()); //On vérifie que le code postal vérifie le format des cp français if (cp.ToString().Length == 5) { this.CodePostal = cp; } //Sinon le format est incorrect else { throw new Exception(); } } catch (Exception) { Console.WriteLine(Affichage.Erreur("Format incorrect. Vous pourrez modifier cette information ultérieurement.")); } }
/// <summary> /// Retourne une chaîne de caractères contenant la valeur des attributs de la classe /// </summary> /// <returns></returns> public override string ToString() { string s = "\n"; //Ajoute un petit effet pour mettre en avant le titre lors de l'affichage s += Affichage.Titre1(this.Titre); s += "Description : " + this.Description + "\n"; s += "\nReference : " + this.Reference + "\n"; s += "Genre : " + this.GenreS + "\n"; s += "Année de Parution : " + this.AnneeParution + "\n"; s += "\nDate de saisie dans l'application : " + this.DateEntree + "\n"; return(s); }
/// <summary> /// Décrit tous les médias enregistrés dans la liste /// </summary> /// <returns>La description</returns> public override string ToString() { string s = ""; if (this.Medias.Count != 0) { s += Affichage.Titre1("Liste des médias enregistrés"); } //Cas où la liste est vide else { s += Affichage.Titre1("Aucun résultat trouvé"); } foreach (Media m in this.Medias) { s += m.ToStringMin(); } return(s); }
/*Plutôt que de répéter le code de saisie d'un attribut dans Saisie et SaisiePartielle, * on le place dans une fonction privée qu'on appelle plusieurs fois*/ /// <summary> /// Saisie dans la console de la référence /// </summary> private void SaisieRef() { bool ok = false; while (!ok) { try { Console.Write("-- Reference ? "); this.Reference = Console.ReadLine(); if (this.Reference == "") { throw new Exception(); } else { ok = true; } } catch (Exception) { Console.WriteLine(Affichage.Erreur("Saisie non conforme")); } } }