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.
951 lines
47 KiB
951 lines
47 KiB
using données;
|
|
using notre_bibliotheque;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
|
|
namespace test_number_one
|
|
{
|
|
class Program
|
|
{
|
|
/// <summary>
|
|
/// cette classe sert de test fonctionnel; toutes les actions possibles de l'application sont testées
|
|
/// </summary>
|
|
|
|
//cette attribut de type IPercistance va permettre de charger les données depuis Stub
|
|
private static IPercistance stb = new Stub("");
|
|
|
|
static void Main(string[] args)
|
|
{
|
|
TestGlobal();
|
|
}
|
|
|
|
static void TestGlobal()
|
|
{
|
|
//cette collection de type IList<Langage> recupère les langages chargés
|
|
IList<Item> lesLangages = stb.ChargerLesDonnées()["Langages"] as IList<Item>;
|
|
Items itemsLang = new Items(lesLangages);
|
|
|
|
//cette collection de type IList<Compte> recupère les comptes chargés
|
|
IList<Item> lesComptes = stb.ChargerLesDonnées()["Comptes"] as IList<Item>;
|
|
Item it11 = new Compte("id13", "mdp1");
|
|
lesComptes.Add(it11);
|
|
|
|
//ces attributs de type Gestionaire vont permettre la gestion des données à travers les tests
|
|
Gestionaire.Persistance = stb;
|
|
Gestionaire gestionaireDeComptes = new GestionaireDeComptes();
|
|
Gestionaire gestionaireDeLanagage = new GestionaireDeLangages();
|
|
|
|
|
|
bool l = true;
|
|
|
|
//cette méthode permet d'afficher tous les langages, pour vérifier que toutes les informations sont correctes
|
|
//elle demande à l'utilisateur de préciser le type de tri, puis affiche la liste selon
|
|
void AfficherLesLangages(GestionaireDeLangages gl, GestionaireDeComptes gc)
|
|
{
|
|
Console.WriteLine("Comment Afficher les langages");
|
|
Console.WriteLine("1. Trier par nom");
|
|
Console.WriteLine("2. Afficher selement les favoris");
|
|
Console.WriteLine("3. Trier par ordre de date de création");
|
|
Console.WriteLine("4. Trier par ordre de génération");
|
|
|
|
|
|
string rép = Console.ReadLine();
|
|
switch (rép)
|
|
{
|
|
case "2":
|
|
if(gc.ItemsComptes.ItemCourant == null)
|
|
{
|
|
Console.WriteLine("Persone n'est connecté");
|
|
return;
|
|
}
|
|
if((gc.ItemsComptes.ItemCourant as Compte).LesLangagesFavoris.Count == 0)
|
|
{
|
|
Console.WriteLine($"{(gc.ItemsComptes.ItemCourant as Compte).Identifiant} n'a pas de langage favoris");
|
|
return;
|
|
}
|
|
gl.ItemsLangages.Filtre = ValeurTri.Favoris;
|
|
break;
|
|
case "3":
|
|
gl.ItemsLangages.Filtre = ValeurTri.Date;
|
|
break;
|
|
case "4":
|
|
gl.ItemsLangages.Filtre = ValeurTri.Génération;
|
|
break;
|
|
case "1":
|
|
default:
|
|
gl.ItemsLangages.Filtre = ValeurTri.Nom;
|
|
break;
|
|
}
|
|
foreach (Item it in gl.ItemsLangages.LesItems)
|
|
{
|
|
Console.WriteLine($"{it}\n**************************************************************************");
|
|
}
|
|
}
|
|
|
|
//cette méthode permet d'afficher tous les comptes, pour vérifier que toutes les informations sont correctes
|
|
void AfficherLesComptes(GestionaireDeComptes g)
|
|
{
|
|
foreach (Item it in g.ItemsComptes.LesItems)
|
|
{
|
|
Console.WriteLine($"{it}\n**************************************************************************");
|
|
}
|
|
}
|
|
|
|
//cette méthode permet de créer un compte ; la console demande à l'utilisateur de saisir
|
|
//toutes les informations nécessaires
|
|
//si il n'y a pas d'erreurs (les deux mots de passes sont identiques et l'identifiant n'est pas déjà utilisé
|
|
//par un autre utilisateur), le message "Votre compte à bien été créé" s'affiche et l'utilisateur est
|
|
//automatiquement conecté à ce compte
|
|
void CreerUnCompte(GestionaireDeComptes g)
|
|
{
|
|
Console.Write("ID :");
|
|
string id = Console.ReadLine();
|
|
Console.Write("Mot de passe :");
|
|
string mdp1 = Console.ReadLine();
|
|
Console.Write("Mot de passe :");
|
|
string mdp2 = Console.ReadLine();
|
|
Console.Write("Accès au mode administrateur ? (o/n) : ");
|
|
string rep = Console.ReadLine();
|
|
bool admin;
|
|
if (rep == "o")
|
|
{
|
|
admin = true;
|
|
}
|
|
else admin = false;
|
|
try
|
|
{
|
|
Compte tmp = g.VerfierCreationCompte(id, mdp1, mdp2,admin);
|
|
g.ItemsComptes.Ajouter(tmp);
|
|
g.ItemsComptes.ItemCourant = tmp;
|
|
Console.WriteLine("Votre compte à bien été créé");
|
|
}catch(Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
|
|
}
|
|
|
|
//cette méthode sert à supprimer un compte ; la console demande à l'utilisateur de saisir les informations
|
|
//nécessaires avant de supprimer le compte
|
|
//si il n'y a pas d'erreurs (l'identifiant et mot de passe sont correctes et existent bien
|
|
//dans le liste de comptes), le message "-identifiant- à bien été supprimé" s'affiche
|
|
void SupprimerUnCompte(GestionaireDeComptes g)
|
|
{
|
|
Console.Write("ID :");
|
|
string id = Console.ReadLine();
|
|
Console.Write("MDP :");
|
|
string mdp = Console.ReadLine();
|
|
Compte tmp = new Compte(id, mdp);
|
|
try
|
|
{
|
|
g.ItemsComptes.Supprimer(tmp);
|
|
Console.WriteLine($"{tmp.Identifiant} à bien était supprimé");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
|
|
}
|
|
|
|
//cette méthode sert à ajouter un langage ; pour se faire, l'utilisateur doit être connecté, et doit avoir
|
|
//le droit d'accès au mode administrateur (sinon, un message d'erreur s'affiche)
|
|
//la console demande à l'utilisateur de saisir toutes les informations nécessaires
|
|
//pour remplir un champ, tant qu'il y a une erreur (qu'une exception est lévée), l'utilisateur devra
|
|
//ressaisir l'information jusqu'a ce qu'elle soit correcte pour continuer
|
|
//si il n'y a pas d'erreur, le message "Le Langage a bien été ajouté à la liste" est affiché,
|
|
//et le langage est ajouté
|
|
void AjouterUnLangage(GestionaireDeLangages gl, GestionaireDeComptes gc)
|
|
{
|
|
if (gc.IsSomeoneConnected)
|
|
{
|
|
if ((gc.ItemsComptes.ItemCourant as Compte).EstAdmin)
|
|
{
|
|
bool success = false;
|
|
string respuesta;
|
|
string nom = "";
|
|
string aut = "";
|
|
string doc = "";
|
|
string logo = "";
|
|
string log = "";
|
|
string utilite = "";
|
|
int gen = 0;
|
|
int date = 0;
|
|
while (!success)
|
|
{
|
|
Console.Write("Nom : ");
|
|
nom = Console.ReadLine();
|
|
if(string.IsNullOrEmpty(nom.Trim()))
|
|
{
|
|
Console.WriteLine("Le nom doit être saisi");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
IList<string> auteurs = new List<string>();
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
do
|
|
{
|
|
Console.Write("Un Auteur : ");
|
|
aut = Console.ReadLine();
|
|
auteurs.Add(aut);
|
|
Console.Write("D'auteurs auteurs ? (o/n) : ");
|
|
respuesta = Console.ReadLine();
|
|
} while (respuesta != "n");
|
|
if(auteurs.Count == 0)
|
|
{
|
|
Console.WriteLine("Il doit y avoir au moins un auteur");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
Console.Write("Date de création (aaaa) : ");
|
|
try
|
|
{
|
|
date = int.Parse(Console.ReadLine());
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
Console.Write("Lien vers la documentation : ");
|
|
doc = Console.ReadLine();
|
|
if(String.IsNullOrEmpty(doc.Trim()))
|
|
{
|
|
Console.WriteLine("Le lien vers la documentation doit être rempli");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
Console.Write("Logo (chemin) : ");
|
|
|
|
logo = Console.ReadLine();
|
|
if(string.IsNullOrEmpty(logo.Trim()))
|
|
{
|
|
Console.WriteLine("Le chemin doit être saisi");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
|
|
IList<string> logiciels = new List<string>();
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
do
|
|
{
|
|
Console.Write("Un logiciel : ");
|
|
log = Console.ReadLine();
|
|
logiciels.Add(log);
|
|
Console.Write("D'auteurs logiciels ? (o/n) : ");
|
|
respuesta = Console.ReadLine();
|
|
} while (respuesta != "n");
|
|
if(logiciels.Count == 0)
|
|
{
|
|
Console.WriteLine("Il faut saisir des logiciels");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
|
|
bool finish = false;
|
|
string exemple = "";
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
Console.WriteLine("Exemple de code (Hello World) - tapez entrer pour ecrire une nouvelle ligne");
|
|
while (!finish)
|
|
{
|
|
exemple += $"{Console.ReadLine()}\n";
|
|
Console.Write("Ecrire une autre ligne ? (o/n) : ");
|
|
respuesta = Console.ReadLine();
|
|
if (respuesta == "n")
|
|
{
|
|
finish = true;
|
|
}
|
|
}
|
|
if(String.IsNullOrEmpty(exemple.Trim()))
|
|
{
|
|
Console.WriteLine("L'exemple doit être saisi");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
Console.Write("Utilités du langage : ");
|
|
|
|
utilite = Console.ReadLine();
|
|
if(string.IsNullOrEmpty(utilite))
|
|
{
|
|
Console.WriteLine("Il faut saisir l'utilité du langage");
|
|
continue;
|
|
}
|
|
success = true;
|
|
|
|
}
|
|
|
|
IList<string> paradigmes = new List<string>();
|
|
string parag;
|
|
success = false;
|
|
while (!success)
|
|
{
|
|
do
|
|
{
|
|
Console.Write("Un paradigme : ");
|
|
parag = Console.ReadLine();
|
|
paradigmes.Add(parag);
|
|
Console.Write("D'auteurs paradigmes ? (o/n) : ");
|
|
respuesta = Console.ReadLine();
|
|
} while (respuesta != "n");
|
|
|
|
if(paradigmes.Count == 0)
|
|
{
|
|
Console.WriteLine("Il doit y avoir au moins un paradigme");
|
|
continue;
|
|
}
|
|
success = true;
|
|
}
|
|
success = false;
|
|
while(!success)
|
|
{
|
|
Console.Write("Définir une génération :");
|
|
try
|
|
{
|
|
gen = int.Parse(Console.ReadLine());
|
|
if(gen <= 0)
|
|
{
|
|
Console.WriteLine("La génération du langage doit être superieur à 0");
|
|
continue;
|
|
}
|
|
}catch(System.IO.IOException e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
success = true;
|
|
}
|
|
Langage lang = new Langage(nom, date, auteurs, doc, logo, exemple, logiciels, utilite, paradigmes, gen);
|
|
gl.ItemsLangages.Ajouter(lang);
|
|
if (gl.ItemsLangages.Exists(lang))
|
|
{
|
|
Console.WriteLine("Le Langage a bien été ajouté à la liste");
|
|
Console.WriteLine("*****************************************");
|
|
Console.WriteLine(lang);
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("pb : le langage n'a pas été ajouté");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'avez pas accès au mode adminstrateur");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connecté");
|
|
}
|
|
}
|
|
|
|
//cette méthode sert à modifier un langage; pour se faire, l'utilisateur doit être connecté, doit avoir
|
|
//le droit d'accès au mode administrateur, et avoir préalablement sélectionné un langage
|
|
//(sinon, un message d'erreur s'affiche)
|
|
//la console demande à l'utilisateur de saisir toutes les informations nécessaires
|
|
//pour remplir un champ, tant qu'il y a une erreur (qu'une exception est lévée), l'utilisateur devra
|
|
//ressaisir l'information jusqu'a ce qu'elle soit correcte pour continuer
|
|
//pour chaque champ que l'utilisateur choisi de modifier, la propriété du langage est set par la valeur saisie
|
|
//si il n'y a pas d'erreur, le message "Le Langage a bien été modifiée" est affiché
|
|
void ModifierLangageSelectionné(GestionaireDeLangages gl, GestionaireDeComptes gc)
|
|
{
|
|
if (gc.IsSomeoneConnected)
|
|
{
|
|
if ((gc.ItemsComptes.ItemCourant as Compte).EstAdmin)
|
|
{
|
|
if (gl.IsASelectedLanguage)
|
|
{
|
|
bool success = false;
|
|
Console.WriteLine(gl.ItemsLangages.ItemCourant);
|
|
string answer;
|
|
Console.Write("Modifier le nom ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
while (!success)
|
|
{
|
|
Console.Write("Nouveau nom : ");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).Nom = Console.ReadLine();
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier la date de création ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
while (!success)
|
|
{
|
|
Console.Write("aaaa : ");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).DateDuLangage = int.Parse(Console.ReadLine());
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier les auteurs ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
IList<string> auteurs = new List<string>();
|
|
string aut;
|
|
string reponse;
|
|
while (!success)
|
|
{
|
|
do
|
|
{
|
|
Console.Write("Un Auteur : ");
|
|
aut = Console.ReadLine();
|
|
auteurs.Add(aut);
|
|
Console.Write("D'auteurs auteurs ? (o/n) : ");
|
|
reponse = Console.ReadLine();
|
|
} while (reponse != "n");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).LesAuteurs = auteurs;
|
|
success = true;
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier le logo ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
while (!success)
|
|
{
|
|
Console.Write("Nouveau chemin du logo : ");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).CheminDuLogo = Console.ReadLine();
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier la documentation ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
while (!success)
|
|
{
|
|
Console.Write("Nouveau lien vers la documentation : ");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).Documentation = Console.ReadLine();
|
|
success = true;
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier les logiciels ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
IList<string> logiciels = new List<string>();
|
|
string log;
|
|
string reponse;
|
|
while (!success)
|
|
{
|
|
do
|
|
{
|
|
Console.Write("Un logiciel : ");
|
|
log = Console.ReadLine();
|
|
logiciels.Add(log);
|
|
Console.Write("D'auteurs logiciels ? (o/n) : ");
|
|
reponse = Console.ReadLine();
|
|
} while (reponse != "n");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).LogicielsConus = logiciels;
|
|
success = true;
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier l'utilité ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
while (!success)
|
|
{
|
|
Console.Write("Nouvelle utilité : ");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).UtilitéDuLangage = Console.ReadLine();
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier l'exemple ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if (answer == "o")
|
|
{
|
|
bool finish = false;
|
|
string exemple = "";
|
|
while (!success)
|
|
{
|
|
while (!finish)
|
|
{
|
|
exemple += $"{Console.ReadLine()}\n";
|
|
Console.Write("Ecrire une autre ligne ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if (answer == "n")
|
|
{
|
|
finish = true;
|
|
}
|
|
}
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).ExempleDeCode = exemple;
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
Console.Write("Modifier les paradigmes ? (o/n) : ");
|
|
answer = Console.ReadLine();
|
|
if(answer == "o")
|
|
{
|
|
IList<string> paradigmes = new List<string>();
|
|
string parag;
|
|
string reponse;
|
|
while (!success)
|
|
{
|
|
do
|
|
{
|
|
Console.Write("Un paradigme : ");
|
|
parag = Console.ReadLine();
|
|
paradigmes.Add(parag);
|
|
Console.Write("D'auteurs paradigmes ? (o/n) : ");
|
|
reponse = Console.ReadLine();
|
|
} while (reponse != "n");
|
|
try
|
|
{
|
|
(gl.ItemsLangages.ItemCourant as Langage).LesParadigmes = paradigmes;
|
|
success = true;
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
success = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'avez séléctioné aucun langage");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'avez pas accès au mode adminstrateur");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connécté");
|
|
}
|
|
}
|
|
|
|
//cette méthode sert à supprimer un langage; pour se faire, l'utilisateur doit être connecté, doit avoir
|
|
//le droit d'accès au mode administrateur, et avoir préalablement sélectionné un langage
|
|
//(sinon, un message d'erreur s'affiche)
|
|
//la console demande à l'utilisateur de confirmer la suppression du langage selectionné
|
|
//si l'uilsateur choisi de supprimer la langage et s'il n'y a pas d'erreur,
|
|
//le message "Le Langage a bien été supprimé" est affiché, le langage est ainsi supprimé, et le langage selectionné
|
|
//devient null
|
|
void SupprimerLangageSelectionné(GestionaireDeLangages gl, GestionaireDeComptes gc )
|
|
{
|
|
if (gc.IsSomeoneConnected)
|
|
{
|
|
if ((gc.ItemsComptes.ItemCourant as Compte).EstAdmin)
|
|
{
|
|
if (gl.IsASelectedLanguage)
|
|
{
|
|
try
|
|
{
|
|
Console.WriteLine(gl.ItemsLangages.ItemCourant);
|
|
Console.Write("Supprimer ce langage ? (o/n) : ");
|
|
string answer = Console.ReadLine();
|
|
if (answer == "o")
|
|
{
|
|
gl.ItemsLangages.Supprimer((gl.ItemsLangages.ItemCourant as Langage));
|
|
if (gl.ItemsLangages.Exists((gl.ItemsLangages.ItemCourant as Langage)))
|
|
{
|
|
Console.WriteLine("pb : le langage n'a pas été ajouté");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine($"Le langage à bien était supprimé");
|
|
gl.ItemsLangages.ItemCourant = null;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine(e.Message);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'avez séléctioné aucun langage");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'avez pas accès au mode administrateur");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connécté");
|
|
}
|
|
|
|
}
|
|
|
|
//cette méthode sert à modifier le mot de passe d'un compte ; pour se faire, l'utilisater doit être connecté
|
|
//(sinon un message d'erreur est affiché)
|
|
//tant que les deux mots de passes saisis ne sont pas les même, l'utilisateur devra ressaisir
|
|
//les mots de passes pour continuer
|
|
//si il n'y a pas d'erreur, le message "Mot de passe modifié avec succès" est affiché,
|
|
//et le mot de passe est set
|
|
void ModifierCompte(GestionaireDeComptes g)
|
|
{
|
|
if (g.IsSomeoneConnected)
|
|
{
|
|
Console.WriteLine("Le compte courant : ");
|
|
Console.WriteLine(g.ItemsComptes.ItemCourant);
|
|
Console.WriteLine("**********************************");
|
|
Console.Write("Nouveau mot de passe : ");
|
|
string mdp = Console.ReadLine();
|
|
Console.Write("Confirmer le mot de passe : ");
|
|
string mdp2 = Console.ReadLine();
|
|
while (mdp != mdp2)
|
|
{
|
|
Console.WriteLine("Les deux mots de passe ne sont pas les mêmes; veuillez réessayer");
|
|
Console.Write("Nouveau mot de passe : ");
|
|
mdp = Console.ReadLine();
|
|
Console.Write("Confirmer le mot de passe : ");
|
|
mdp2 = Console.ReadLine();
|
|
}
|
|
(g.ItemsComptes.ItemCourant as Compte).MotDePasse = mdp;
|
|
Console.WriteLine("Le compte courant : ");
|
|
Console.WriteLine(g.ItemsComptes.ItemCourant);
|
|
Console.WriteLine("**********************************");
|
|
Console.WriteLine("Mot de passe modifié avec succès");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connecté");
|
|
}
|
|
|
|
}
|
|
|
|
//cette méthode permet à l'utilisateur de se connecter à un compte; pour se faire, il ne doit pas être déjà
|
|
//connecté à un compte
|
|
//la console demande à l'utilisateur de saisir son identifiant et son mot de passe, et si il n'y a pas d'erreur
|
|
//le message "Connecté avec succès" est affiché
|
|
void SeConnecter(GestionaireDeComptes g)
|
|
{
|
|
if (!g.IsSomeoneConnected)
|
|
{
|
|
Console.Write("ID :");
|
|
string id = Console.ReadLine();
|
|
Console.Write("Mot de passe :");
|
|
string mdp = Console.ReadLine();
|
|
Compte tmp = new Compte(id, mdp);
|
|
if (g.ItemsComptes.Exists(tmp))
|
|
{
|
|
int indexCompte = g.ItemsComptes.LesItems.IndexOf(tmp);
|
|
g.ItemsComptes.ItemCourant = g.ItemsComptes.LesItems[indexCompte] as Compte;
|
|
Console.BackgroundColor = ConsoleColor.Green;
|
|
Console.ForegroundColor = ConsoleColor.Black;
|
|
Console.WriteLine("Connecté avec succès");
|
|
Console.BackgroundColor = ConsoleColor.Black;
|
|
Console.ForegroundColor = ConsoleColor.White;
|
|
}
|
|
else
|
|
{
|
|
Console.BackgroundColor = ConsoleColor.Red;
|
|
Console.ForegroundColor = ConsoleColor.Black;
|
|
Console.WriteLine("ID ou mot de passe incorecte");
|
|
Console.BackgroundColor = ConsoleColor.Black;
|
|
Console.ForegroundColor = ConsoleColor.White;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous êtes déja connecté");
|
|
}
|
|
}
|
|
|
|
//cette méthode sert à ajouter un langage à la liste des favoris ; pour se faire, l'utilisateur doit être
|
|
//connecté, et avoir préalablement selectionné un langage (sinon un message d'erreur est affiché)
|
|
//si le langge est dejà dans les favoris, le message "Le langage -nom- est deja dans votre liste des favoris"
|
|
//est affiché, sinon le langage est ajouté aux favorix et le message "Le langage -nom- a été ajouté avec succès
|
|
//dans la liste des favoris" est affiché
|
|
void AjouterUnLangageEnFavoris(GestionaireDeLangages gl, GestionaireDeComptes gc)
|
|
{
|
|
if(gc.IsSomeoneConnected)
|
|
{
|
|
if(gl.IsASelectedLanguage)
|
|
{
|
|
if (!(gc.ItemsComptes.ItemCourant as Compte).LesLangagesFavoris.Contains((gl.ItemsLangages.ItemCourant as Langage)))
|
|
{
|
|
(gc.ItemsComptes.ItemCourant as Compte).LesLangagesFavoris.Add((gl.ItemsLangages.ItemCourant as Langage));
|
|
Console.WriteLine($"Le langage {(gl.ItemsLangages.ItemCourant as Langage).Nom} a été ajouté avec succès dans la liste des favoris");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine($"Le langage {(gl.ItemsLangages.ItemCourant as Langage).Nom} est deja dans votre liste des favoris");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'avez séléctioné aucun langage");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connécté");
|
|
}
|
|
}
|
|
|
|
//cette méthode sert à selectionné un langage; la liste des langages est affiché (triée par noms)
|
|
//la console demande à l'utilisateur de saisir le langage à selectionner
|
|
//si le langage est dans la liste, le message "Langage séléctioné : -nom-" est affiché, et le langage est
|
|
//selectionné, sinon le message "Le langage -nom- n'existe pas." est affiché
|
|
void SelectionerUnLangage(GestionaireDeLangages g)
|
|
{
|
|
ValeurTri ancieneValeurTri = g.ItemsLangages.Filtre;
|
|
g.ItemsLangages.Filtre = ValeurTri.Nom;
|
|
foreach(Langage lang in g.ItemsLangages.LesItems)
|
|
{
|
|
Console.WriteLine(lang.Nom);
|
|
}
|
|
Console.Write("Saisir le nom du langage :");
|
|
string rép = Console.ReadLine();
|
|
foreach(Langage lang in g.ItemsLangages.LesItems)
|
|
{
|
|
if (lang.Nom == rép)
|
|
{
|
|
g.ItemsLangages.ItemCourant = lang;
|
|
g.ItemsLangages.Filtre = ancieneValeurTri;
|
|
Console.WriteLine($"Langage séléctioné :\n{lang}");
|
|
return;
|
|
}
|
|
}
|
|
Console.WriteLine($"Le langage {rép} n'existe pas.");
|
|
g.ItemsLangages.Filtre = ancieneValeurTri;
|
|
}
|
|
|
|
//cette méthode sert à supprimer un langage de la liste des favoris ; pour se faire, l'utilisateur doit être
|
|
//connecté, et avoir préalablement selectionné un langage (sinon un message d'erreur est affiché)
|
|
//si le langge n'est pas dans les favoris, le message "Ce langage n'est pas dans votre liste de favoris"
|
|
//est affiché, sinon le langage est supprimé des favoris et le message "Le langage -nom- a bien été retiré de
|
|
//la liste des favoris" est affiché
|
|
void SupprimerUnLangageDesFavoris(GestionaireDeLangages gl, GestionaireDeComptes gc)
|
|
{
|
|
if(gc.IsSomeoneConnected)
|
|
{
|
|
if (gl.IsASelectedLanguage)
|
|
{
|
|
if ((gc.ItemsComptes.ItemCourant as Compte).LesLangagesFavoris.Remove((gl.ItemsLangages.ItemCourant as Langage)))
|
|
{
|
|
Console.WriteLine($"Le langage {(gl.ItemsLangages.ItemCourant as Langage).Nom} a bien été retiré de la liste des favoris");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine($"Ce langage n'est pas dans votre liste de favoris");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Aucun langage n'est séléctioné");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connécté");
|
|
}
|
|
}
|
|
|
|
//cette méthode permet d'afficher les details sur le langage selectionné (son nom, sa date de création,
|
|
//ses auteurs ...); pour se faire, l'utilisateur doit avoir préalablement selectionné un langage
|
|
//(sinon un message d'erreur s'affiche)
|
|
void AfficherLeLangageSéléctioné(GestionaireDeLangages g)
|
|
{
|
|
if(g.IsASelectedLanguage)
|
|
{
|
|
Console.WriteLine(g.ItemsLangages.ItemCourant);
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Aucun langage n'est séléctioné");
|
|
}
|
|
}
|
|
|
|
//cette méthode permet à l'utilisateur de se déconnecter; pour se faire, l'utilisateur doit etre connecté
|
|
//à un commpte (sinon un message d'erreur d'affiche)
|
|
//si il n'y a pas d'erreur, le message "Déconnecté avec succès" est affiché, et le compte connecté devient null
|
|
void SeDeconnecter(GestionaireDeComptes g)
|
|
{
|
|
if (g.IsSomeoneConnected)
|
|
{
|
|
g.ItemsComptes.ItemCourant = null;
|
|
Console.BackgroundColor = ConsoleColor.Green;
|
|
Console.ForegroundColor = ConsoleColor.Black;
|
|
Console.WriteLine("Déconnecté avec succès");
|
|
Console.BackgroundColor = ConsoleColor.Black;
|
|
Console.ForegroundColor = ConsoleColor.White;
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Vous n'êtes pas connecté");
|
|
}
|
|
}
|
|
|
|
//cette boucle va permettre à l'utilisateur de tester toutes les fonctionnalités ; tant que l'utilisateur
|
|
//n'a pas saisi ctrl+c pour quitter la boucle, un menu s'affiche et la console demande à l'utilisateur
|
|
//de choisir une action en saisissant le numero correspondant
|
|
while (l)
|
|
{
|
|
|
|
Console.WriteLine("1\tAfficher les langages");
|
|
Console.WriteLine("2\tAfficher les comptes");
|
|
Console.WriteLine("3\tSe connecter");
|
|
Console.WriteLine("4\tCréer un compte");
|
|
Console.WriteLine("5\tModifier le mot de passe du compte");
|
|
Console.WriteLine("6\tSupprimer un commpte");
|
|
Console.WriteLine("7\tSéléctioner un langage");
|
|
Console.WriteLine("8\tAfficher le langage séléctionné");
|
|
Console.WriteLine("9\tAjouter un langage");
|
|
Console.WriteLine("10\tModifier le langage séléctionné");
|
|
Console.WriteLine("11\tSupprimer le langage sélectionné");
|
|
Console.WriteLine("12\tAjouter le langage séléctioné en favoris");
|
|
Console.WriteLine("13\tSupprimé le langage séléctioné des favoris");
|
|
Console.WriteLine("14\tSe déconnecter");
|
|
Console.Write("Choix : ");
|
|
string réponse = Console.ReadLine();
|
|
switch (réponse)
|
|
{
|
|
case "1":
|
|
AfficherLesLangages(gestionaireDeLanagage as GestionaireDeLangages, gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "2":
|
|
AfficherLesComptes(gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "3":
|
|
SeConnecter(gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "4":
|
|
CreerUnCompte(gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "5":
|
|
ModifierCompte(gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "6":
|
|
SupprimerUnCompte(gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "7":
|
|
SelectionerUnLangage(gestionaireDeLanagage as GestionaireDeLangages);
|
|
break;
|
|
case "8":
|
|
AfficherLeLangageSéléctioné(gestionaireDeLanagage as GestionaireDeLangages);
|
|
break;
|
|
case "9":
|
|
AjouterUnLangage(gestionaireDeLanagage as GestionaireDeLangages, gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "10":
|
|
ModifierLangageSelectionné(gestionaireDeLanagage as GestionaireDeLangages, gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "11":
|
|
SupprimerLangageSelectionné(gestionaireDeLanagage as GestionaireDeLangages, gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "12":
|
|
AjouterUnLangageEnFavoris(gestionaireDeLanagage as GestionaireDeLangages, gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "13":
|
|
SupprimerUnLangageDesFavoris(gestionaireDeLanagage as GestionaireDeLangages, gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
case "14":
|
|
SeDeconnecter(gestionaireDeComptes as GestionaireDeComptes);
|
|
break;
|
|
default:
|
|
Debug.WriteLine("Bye");
|
|
l = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|