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.

539 lines
18 KiB

using Model;
using System.Collections.ObjectModel;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace MyProject;
class Program
{
static private Theque Theque { get; set; } = new();
static void Main(string[] args)
{
MenusPrincipal();
}
static private void MenusPrincipal()
{
while (true)
{
Console.WriteLine("MENUS PRINCIPAL");
Console.WriteLine("\t1- Les espèces");
Console.WriteLine("\t2- Vos animaux");
Console.WriteLine("\t9- Quitter");
Console.Write("\n\tEntrer votre choix : ");
int choix = Convert.ToInt32(Console.ReadLine());
switch (choix)
{
case 1:
Console.Clear();
MenusEspece();
break;
case 2:
Console.Clear();
MenusAnimal();
break;
case 9:
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void MenusEspece()
{
while (true)
{
Console.WriteLine("LES ESPECES");
Console.WriteLine("\t1- Afficher les espèces");
Console.WriteLine("\t2- Sélectionner une espèce");
Console.WriteLine("\t9- Retour");
Console.Write("\n\tEntrer votre choix : ");
int choix = Convert.ToInt32(Console.ReadLine());
switch (choix)
{
case 1:
Console.Clear();
AfficherListeEspece();
break;
case 2:
Console.Clear();
SelectionnerEspece();
break;
case 9:
Console.Clear();
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void AfficherListeEspece()
{
Console.WriteLine("LISTE DES ESPECES : ");
foreach (Espece espece in Theque.ListeEspeces)
{
Console.WriteLine("\t" + espece.Nom + " (" + espece.NomScientifique + ")");
}
Console.WriteLine("\n");
}
static private void SelectionnerEspece()
{
string choix = "";
while (choix != "-1")
{
AfficherListeEspece();
Console.Write("\n\tEntrer le nom de l'espèce à sélectionner (-1 pour annuler) : ");
choix = Console.ReadLine();
Espece? espece = Theque.RechercherEspece(choix);
if (espece != null)
{
AfficherEspece(espece);
}
else Console.WriteLine("\tChoix incorrect\n");
}
}
static private void AfficherEspece(Espece espece)
{
Console.WriteLine("\n" + espece.Nom);
Console.WriteLine("\tNom scientifique : " + espece.NomScientifique);
Console.WriteLine("\tEspérance de vie : " + espece.EsperanceVie);
Console.WriteLine("\tPoids moyen : " + espece.PoidsMoyen);
Console.WriteLine("\tTaille moyenne : " + espece.TailleMoyenne);
Console.WriteLine("\tComportement : " + espece.Comportement);
Console.WriteLine("\tSanté : " + espece.Sante);
Console.WriteLine("\tEducation : " + espece.Education);
Console.WriteLine("\tEntretien : " + espece.Entretien);
Console.WriteLine("\tCout : " + espece.Cout);
Console.WriteLine("\tConseil : " + espece.Conseil);
AfficherListeRace(espece);
while (true)
{
Console.WriteLine("\n\t1- Sélectionner une race");
Console.WriteLine("\t9- Retour");
Console.Write("\n\tEntrer votre choix : ");
int decision = Convert.ToInt32(Console.ReadLine());
switch (decision)
{
case 1:
SelectionnerRace(espece);
break;
case 9:
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void AfficherListeRace(Espece espece)
{
Console.WriteLine("\nLISTE DES RACES : ");
if (espece.ListeRaces != null)
{
foreach (Race race in espece.ListeRaces)
{
Console.WriteLine("\t" + race.Nom + " (" + race.NomScientifique + ")");
}
Console.WriteLine("\n");
}
else Console.WriteLine("\tAucune race connue.\n");
}
static private void SelectionnerRace(Espece espece)
{
string choix = "";
while (choix != "-1")
{
Console.Write("\n\tEntrer le nom de la race à sélectionner (-1 pour annuler) : ");
choix = Console.ReadLine();
if (choix != "-1")
{
Race? race = espece.RechercherRace(choix);
if (race != null)
{
AfficherRace(race);
}
else Console.WriteLine("\tChoix incorrect\n");
}
}
}
static private void AfficherRace(Race race)
{
Console.WriteLine("\n " + race.Nom);
Console.WriteLine("\tNom scientifique : " + race.NomScientifique);
Console.WriteLine("\tEspérance de vie : " + race.EsperanceVie);
Console.WriteLine("\tPoids moyen : " + race.PoidsMoyen);
Console.WriteLine("\tTaille moyenne : " + race.TailleMoyenne);
Console.WriteLine("\tComportement : " + race.Comportement);
Console.WriteLine("\tSante : " + race.Sante);
Console.WriteLine("\tEducation : " + race.Education);
Console.WriteLine("\tEntretien : " + race.Entretien);
Console.WriteLine("\tCout : " + race.Cout);
Console.WriteLine("\tConseil : " + race.Conseil + "\n\n");
}
static private void MenusAnimal()
{
while (true)
{
Console.WriteLine("LES ANIMAUX");
Console.WriteLine("\t1- Afficher les animaux");
Console.WriteLine("\t2- Ajouter un animal");
Console.WriteLine("\t3- Sélectionner un animal");
Console.WriteLine("\t9- Retour");
Console.Write("\n\tEntrer votre choix : ");
int choix = Convert.ToInt32(Console.ReadLine());
switch (choix)
{
case 1:
Console.Clear();
AfficherListeAnimaux();
break;
case 2:
Console.Clear();
Animal animal = Theque.AjouterAnimal();
ModifierAnimal(animal, Theque.ListeEspeces);
break;
case 3:
Console.Clear();
SelectionnerAnimal();
break;
case 9:
Console.Clear();
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void AfficherListeAnimaux()
{
Console.WriteLine("VOS ANIMAUX : ");
foreach (Animal animal in Theque.ListeAnimaux)
{
Console.WriteLine(animal.Nom);
}
}
static private void SelectionnerAnimal()
{
string choix = "";
while (choix != "-1")
{
AfficherListeAnimaux();
Console.Write("\n\tEntrer le nom de l'animal à sélectionner (-1 pour annuler) : ");
choix = Console.ReadLine();
Animal? animal = Theque.RechercherAnimal(choix);
if (animal != null)
{
AfficherAnimal(animal, Theque.ListeEspeces);
}
else Console.WriteLine("\tChoix incorrect\n");
}
}
static private void AfficherAnimal(Animal animal, List<Espece> especetheque)
{
Console.Clear();
while (true)
{
Console.WriteLine("\n" + animal.Nom);
if (animal.Espece != null) Console.WriteLine("\tEspece : " + animal.Espece.Nom);
if (animal.Race != null) Console.WriteLine("\tRace : " + animal.Race.Nom);
Console.WriteLine("\tDate de naissance : " + animal.DateNaissance);
Console.WriteLine("\tSexe : " + animal.Sexe);
Console.WriteLine("\tDate d'adoption : " + animal.DateAdoption);
Console.WriteLine("\tTaille : " + animal.Taille);
Console.WriteLine("\tPoids : " + animal.Poids);
Console.WriteLine("\tAlimentation : " + animal.Alimentation);
Console.WriteLine("\tPETSITTER : ");
AfficherEntite(animal.Petsitter);
Console.WriteLine("\tCHENIL : ");
AfficherEntite(animal.Chenil);
Console.WriteLine("\VETERINAIRE : ");
AfficherEntite(animal.Veterinaire);
Console.WriteLine("\tMAGASIN ALIMENTAIRE : ");
AfficherEntite(animal.MagasinAlimentaire);
Console.WriteLine("\tREFUGE, ELEVAGE, CHENIL DE PROVENANCE : ");
AfficherEntite(animal.Provenance);
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(animal, especetheque);
break;
case 2:
Theque.SupprimerAnimal(animal);
return;
case 9:
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void AfficherEntite(Entite entite)
{
Console.WriteLine("\t\tNom : " + entite.Nom);
Console.WriteLine("\t\tAdresse : " + entite.Adresse + "," + Convert.ToInt32(entite.CodePostal) + " " + entite.Ville);
Console.WriteLine("\t\tNuméro de téléphone : " + entite.NumTel);
}
static private void ModifierAnimal(Animal animal, List<Espece> especetheque)
{
while (true)
{
Console.WriteLine("MODIFIER L'ANIMAL ", 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("\t10- Petsitter");
Console.WriteLine("\t11- Chenil");
Console.WriteLine("\t12- Vétérinaire");
Console.WriteLine("\t13- Magasin alimentaire");
Console.WriteLine("\t14- Refuge, élevage et chenil de provenance");
Console.WriteLine("\t19- Retour");
Console.Write("\n\tEntrer votre choix : ");
int decision = Convert.ToInt32(Console.ReadLine());
switch (decision)
{
case 1:
ModifierNom(animal);
break;
case 2:
ModifierEspece(animal);
break;
case 3:
ModifierRace(animal);
break;
case 4:
ModifierDateNaissance(animal);
break;
case 5:
ModifierSexe(animal);
break;
case 6:
ModifierDateAdoption(animal);
break;
case 7:
ModifierTaille(animal);
break;
case 8:
ModifierPoids(animal);
break;
case 9:
ModifierAlimentation(animal);
break;
case 10:
ModifierEntite(animal.Petsitter.Entite);
break;
case 11:
ModifierEntite(animal.Chenil.Entite);
break;
case 12:
ModifierEntite(animal.Veterinaire.Entite);
break;
case 13:
ModifierEntite(animal.MagasinAlimentaire.Entite);
break;
case 14:
ModifierEntite(animal.Provenance.Entite);
break;
case 19:
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void ModifierNom(Animal animal)
{
Console.Write("\tNom : ");
animal.Nom = Console.ReadLine();
}
static private void ModifierEspece(Animal animal)
{
Espece? espece = null;
while (espece == null)
{
Console.Write("\tEspèce : ");
string nomEspece = Console.ReadLine();
espece = Theque.RechercherEspece(nomEspece);
if (espece == null)
{
Console.WriteLine("Espece inconnue\n");
}
}
animal.Espece = espece;
}
static private void ModifierSexe(Animal animal)
{
string sexe = "sexe";
while (sexe != "Male" && sexe != "Femelle" && sexe != "")
{
Console.Write("\tSexe [Male|Femelle|] (appuyer sur entrer pour passer) : ");
sexe = Console.ReadLine();
}
animal.Sexe = sexe;
}
static private void ModifierTaille(Animal animal)
{
Console.Write("\tTaille (appuyer sur entrer pour passer) : ");
string taille = Console.ReadLine();
if (taille == "") animal.Taille = null;
else animal.Taille = Single.Parse(taille);
}
static private void ModifierPoids(Animal animal)
{
Console.Write("\tPoids (appuyer sur entrer pour passer) : ");
string poids = Console.ReadLine();
if (poids == "") animal.Poids = null;
else animal.Poids = Single.Parse(poids);
}
static private void ModifierAlimentation(Animal animal)
{
Console.Write("\tAlimentation (appuyer sur entrer pour passer) : ");
animal.Alimentation = Console.ReadLine();
}
static private void ModifierDateNaissance(Animal animal)
{
Console.Write("\tDate de naissance (appuyer sur entrer pour passer) : ");
animal.DateNaissance = Console.ReadLine();
}
static private void ModifierDateAdoption(Animal animal)
{
Console.Write("\tDate d'adoption (appuyer sur entrer pour passer) : ");
animal.DateAdoption = Console.ReadLine();
}
static private void ModifierRace(Animal animal)
{
Console.Write("\tRace (appuyer sur entrer pour passer) : ");
string nomRace = Console.ReadLine();
animal.Race = animal.Espece.RechercherRace(nomRace);
}
static private void ModifierEntite(Entite entite)
{
while (true)
{
Console.WriteLine("MODIFIER L'ENTITE ", entite);
Console.WriteLine("\t1- Nom");
Console.WriteLine("\t2- Adresse");
Console.WriteLine("\t3- Code postal");
Console.WriteLine("\t4- Ville");
Console.WriteLine("\t9- Retour");
Console.Write("\n\tEntrer votre choix : ");
int decision = Convert.ToInt32(Console.ReadLine());
switch (decision)
{
case 1:
ModifierNomEntite(entite);
break;
case 2:
ModifierAdresseEntite(entite);
break;
case 3:
ModifierCodePostalEntite(entite);
break;
case 4:
ModifierVilleEntite(entite);
break;
case 9:
return;
default:
Console.WriteLine("\tChoix incorrect\n");
break;
}
}
}
static private void ModifierNomEntite(Entite entite)
{
Console.Write("\tNom (appuyer sur entrer pour passer) : ");
entite.Nom = Console.ReadLine();
}
static private void ModifierAdresseEntite(Entite entite)
{
Console.Write("\tAdresse (appuyer sur entrer pour passer) : ");
entite.Adresse = Console.ReadLine();
}
static private void ModifierCodePostalEntite(Entite entite)
{
int? codePostal = null;
while(codePostal != null || (codePostal < 10000 && codePostal > 99999)) {
Console.Write("\tCode postal (appuyer sur entrer pour passer) : ");
codePostal = Convert.ToInt32(Console.ReadLine());
}
entite.CodePostal = codePostal;
}
static private void ModifierVilleEntite(Entite entite)
{
Console.Write("\tVille(appuyer sur entrer pour passer) : ");
entite.Ville = Console.ReadLine();
}
}