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