@ -3,363 +3,366 @@ using System.Collections.ObjectModel;
using System.IO ;
using System.Runtime.CompilerServices ;
using System.Runtime.InteropServices ;
using System.Runtime.Serialization ;
using System.Runtime.Serialization.Json ;
using System.Xml ;
namespace MyProject ;
class Program
{
static private Theque Theque { get ; set ; } = new ( ) ;
static private Theque Theque { get ; set ; } = Stub . LoadTheque ( ) ;
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 ( ) ;
ModifierNom ( animal ) ;
ModifierAnimal ( animal ) ;
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 ) ;
}
else Console . WriteLine ( "\tChoix incorrect\n" ) ;
}
}
static private void AfficherAnimal ( Animal animal )
{
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 ( "\tVETERINAIRE : " ) ;
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 ) ;
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 )
{
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 ;
{
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 ( ) ;
ModifierNom ( animal ) ;
ModifierAnimal ( animal ) ;
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 ) ;
}
else Console . WriteLine ( "\tChoix incorrect\n" ) ;
}
}
static private void AfficherAnimal ( Animal animal )
{
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 ( "\tVETERINAIRE : " ) ;
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 ) ;
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 )
{
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 ;