You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

304 lines
9.4 KiB

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;
}
}
}
}
}