using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace Model { public class Animal : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; public string Nom { get => nom; set { if (nom == value) return; nom = value; OnPropertyChanged(nameof(Nom)); } } private string nom; public string DateNaissance { get => dateNaissance; set { if (dateNaissance == value) return; dateNaissance = value; OnPropertyChanged(nameof(DateNaissance)); } } private string dateNaissance; public string Sexe { get => sexe; set { if (sexe == value) return; sexe = value; OnPropertyChanged(nameof(Sexe)); } } private string sexe; public string DateAdoption { get => dateAdoption; set { if (dateAdoption == value) return; dateAdoption = value; OnPropertyChanged(nameof(DateAdoption)); } } private string dateAdoption; public float? Taille { get => taille; set { if (taille == value) return; taille = value; OnPropertyChanged(nameof(Taille)); } } private float? taille; public float? Poids { get => poids; set { if (poids == value) return; poids = value; OnPropertyChanged(nameof(Poids)); } } private float? poids; public string Alimentation { get => alimentation; set { if (alimentation == value) return; alimentation = value; OnPropertyChanged(nameof(Alimentation)); } } private string alimentation; public Espece Espece { get; set; } public Race? Race { get; set; } public Animal(string nom = "", string dateNaissance = "Inconnue", string sexe = "Inconnu", string dateAdpotion = "Inconnue", float? taille = null, float? poids = null, string alimentation = "Inconnue", Race? race = null) { Nom = nom; DateNaissance = dateNaissance; Sexe = sexe; DateAdoption = dateAdpotion; Taille = taille; Poids = poids; Alimentation = alimentation; Race = race; } void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public void AfficherAnimal(Zootheque zootheque, Especetheque especetheque) { Console.Clear(); while (true) { Console.WriteLine("\n" + Nom); Console.WriteLine("\tEspece : " + Espece.Nom); if (Race != null) Console.WriteLine("\tRace : " + Race.Nom); Console.WriteLine("\tDate de naissance : " + DateNaissance); Console.WriteLine("\tSexe : " + Sexe); Console.WriteLine("\tDate d'adoption : " + DateAdoption); Console.WriteLine("\tTaille : " + Taille); Console.WriteLine("\tPoids : " + Poids); Console.WriteLine("\tAlimentation : " + Alimentation); Console.WriteLine("\n\t1- Modifier"); Console.WriteLine("\t2- Supprimer"); Console.WriteLine("\t9- Retour"); Console.Write("\n\tEntrer votre choix : "); int decision = Convert.ToInt32(Console.ReadLine()); switch (decision) { case 1: ModifierAnimal(especetheque); break; case 2: zootheque.SupprimerAnimal(this); return; case 9: return; default: Console.WriteLine("\tChoix incorrect\n"); break; } } } public void ModifierNom() { while(Nom == "") { Console.Write("\tNom : "); Nom = Console.ReadLine(); } } public void ModifierEspece(Especetheque especetheque) { Espece? espece = null; while (espece == null) { Console.Write("\tEspèce : "); string nomEspece = Console.ReadLine(); espece = especetheque.RechercherEspece(nomEspece); if (espece == null) { Console.WriteLine("Espece inconnue\n"); } } Espece = espece; } public void ModifierSexe() { string sexe = "sexe"; while(sexe != "Male" && sexe != "Femelle" && sexe != "") { Console.Write("\tSexe [Male|Femelle|] (appuyer sur entrer pour passer) : "); sexe = Console.ReadLine(); } Sexe = sexe; } public void ModifierTaille() { Console.Write("\tTaille (appuyer sur entrer pour passer) : "); string taille = Console.ReadLine(); if (taille == "") Taille = null; else Taille = Single.Parse(taille); } public void ModifierPoids() { Console.Write("\tPoids (appuyer sur entrer pour passer) : "); string poids = Console.ReadLine(); if (poids == "") Poids = null; else Poids = Single.Parse(poids); } public void ModifierAlimentation() { Console.Write("\tAlimentation (appuyer sur entrer pour passer) : "); Alimentation = Console.ReadLine(); } public void ModifierDateNaissance() { Console.Write("\tDate de naissance (appuyer sur entrer pour passer) : "); DateNaissance = Console.ReadLine(); } public void ModifierDateAdoption() { Console.Write("\tDate d'adoption (appuyer sur entrer pour passer) : "); DateAdoption = Console.ReadLine(); } public void ModifierRace() { Console.Write("\tRace (appuyer sur entrer pour passer) : "); string nomRace = Console.ReadLine(); Race = Espece.RechercherRace(nomRace); } public void ModifierAnimal(Especetheque especetheque) { while (true) { Console.WriteLine("MODIFIER L'ANIMAL ", Nom); Console.WriteLine("\t1- Nom"); Console.WriteLine("\t2- Espece"); Console.WriteLine("\t3- Race"); Console.WriteLine("\t4- Date de naissance"); Console.WriteLine("\t5- Sexe"); Console.WriteLine("\t6- Date d'adoption"); Console.WriteLine("\t7- Taille"); Console.WriteLine("\t8- Poids"); Console.WriteLine("\t9- Alimentation"); Console.WriteLine("\t19- Retour"); Console.Write("\n\tEntrer votre choix : "); int decision = Convert.ToInt32(Console.ReadLine()); switch (decision) { case 1: ModifierNom(); break; case 2: ModifierEspece(especetheque); break; case 3: ModifierRace(); break; case 4: ModifierDateNaissance(); break; case 5: ModifierSexe(); break; case 6: ModifierDateAdoption(); break; case 7: ModifierTaille(); break; case 8: ModifierPoids(); break; case 9: ModifierAlimentation(); break; case 19: return; default: Console.WriteLine("\tChoix incorrect\n"); break; } } } } }