/* * Permet de créer un intervenant en indiquant directement sa spécification (eleve etc) */ public static Intervenant CreateIntervenant(string type) { Console.Write("\nLe nom de la personne : "); string nom = Console.ReadLine(); Console.Write("Son Prénom : "); string prenom = Console.ReadLine(); //Création des rôles de l'intervenant Console.WriteLine("\nVous allez maintenant rentrer le ou les rôles de cette personne."); List <Role> roles = new List <Role>(); bool doneRole = false; do { if (roles.Count == 0) { Console.Write("Indiquez le rôle de cette personne dans ce projet : "); } else { Console.Write("Indiquez un autre rôle ou entrez Y pour quitter : "); } string roleInput = Console.ReadLine(); if (roleInput.ToUpper() == "Y") { doneRole = true; } else { roles.Add(new Role(roleInput)); } }while (!doneRole); //Création de l'intervenant if (type == "eleve") //élève { return(Eleve.CreateEleve(nom, prenom, roles.ToArray())); } else if (type == "enseignant") //enseignant { return(Enseignant.CreateEnseignant(nom, prenom, roles.ToArray())); } else if (type == "externe")//externe { return(Externe.CreateExterne(nom, prenom, roles.ToArray())); } else { return(new Intervenant(nom, prenom, roles.ToArray())); } }
/* * Permet de créer un intervenant en indiquant directement son rôle */ public static Intervenant CreateIntervenant(Role role) { Console.Write("\nLe nom de la personne : "); string nom = Console.ReadLine(); Console.Write("Son Prénom : "); string prenom = Console.ReadLine(); //Sélection spécification de la classe intervenant string inputSpec; bool doneSpec = false; do { Console.WriteLine("Cette personne est un"); Console.WriteLine("Eleve : entrez 1, Enseignant : entrez 2, Externe : entrez 3, Autre : entrez 4"); Regex regSpec = new Regex("^[1-4]$"); inputSpec = Console.ReadLine(); if (regSpec.Match(inputSpec).Success) { doneSpec = true; } else { Console.WriteLine("Votre entrée est incorrecte"); } }while (!doneSpec); //Création des rôles de l'intervenant Role[] roles = new Role[] { role }; //Création de l'intervenant if (inputSpec == "1") //élève { return(Eleve.CreateEleve(nom, prenom, roles)); } else if (inputSpec == "2") //enseignant { return(Enseignant.CreateEnseignant(nom, prenom, roles)); } else if (inputSpec == "3")//externe { return(Externe.CreateExterne(nom, prenom, roles)); } else { return(new Intervenant(nom, prenom, roles)); } }
/* * Interface de mise à jour d'un projet. Permet à l'utilisateur de modifier les différents éléments * d'un projet donné. * @arg indicateurChangement, l'id du projet à modifier */ public void MiseAJour(int indicateurChangement) { Console.Clear(); // Modification intitulé du projet if (indicateurChangement == 1) { Console.WriteLine($"Vous avez choisi de modifier l'intitulé du projet. \n\nL'intitulé actuel est : {Intitule}"); Console.WriteLine("\nSaisissez le nouvel intitulé de votre projet : "); string intitule = Console.ReadLine(); Intitule = intitule; } // Modification type du projet else if (indicateurChangement == 2) { Console.WriteLine("\nSaisissez le nouveau type de votre projet : "); string type = Console.ReadLine(); Type = type; } // Modification client else if (indicateurChangement == 3) { Console.WriteLine("Vous avez choisi de modifier le client du projet. \nVoici les informations sur le client actuel"); AfficherIntervenant(Client, "Client"); Console.WriteLine(""); Console.WriteLine("Rentrez à présent les informations du nouveau client"); Client = Intervenant.CreateIntervenant(new Role("Client")); } // Ajout livrable else if (indicateurChangement == 4) { Console.WriteLine("Vous avez choisi d'ajouter un nouveau livrable à ce projet.\n Voici la liste des livrables du projet.\n"); AfficherListeLivrables(Livrables); Livrable[] tmpLivrables = new Livrable[Livrables.Length + 1]; // Ajout de tous les livrables déjà existants dans le nouveau tableau de livrables for (int i = 0; i < Livrables.Length; i++) { tmpLivrables[i] = Livrables[i]; } tmpLivrables[tmpLivrables.Length - 1] = Livrable.CreateLivrable(); Livrables = tmpLivrables; } // Modification livrable else if (indicateurChangement == 5) { Console.WriteLine("Vous avez choisi de modifier un livrable. Voici la liste des livrables actuels\n "); AfficherListeLivrables(Livrables); bool errorLivrable = false; bool doneModifLivrable = false; while (!doneModifLivrable) { if (errorLivrable) { Console.WriteLine("Ce que vous avez rentré est incorrect, recommencez."); } Console.Write("Indiquez le numéro du livrable à modifier : "); string repLivrable = Console.ReadLine(); int indiceLivrable = Program.TryParseReponse(repLivrable); if (indiceLivrable < 0 || indiceLivrable > Livrables.Length) { errorLivrable = true; } else { errorLivrable = false; doneModifLivrable = true; Livrables[indiceLivrable - 1] = Livrable.CreateLivrable(); } } } // Ajouter un encadrant else if (indicateurChangement == 6) { Console.WriteLine("Vous avez choisi d'ajouter un nouvel encadrant. \nVoici la liste des encadrants actuels du projet.\n"); AfficherListeIntervenants(Encadrants, "Encadrants"); Console.WriteLine(""); Intervenant[] tmpEncadrants = new Intervenant[Encadrants.Length + 1]; // Ajout de tous les encadrants déjà existants dans le nouveau tableau d'encadrants for (int i = 0; i < Encadrants.Length; i++) { tmpEncadrants[i] = Encadrants[i]; } tmpEncadrants[tmpEncadrants.Length - 1] = Intervenant.CreateIntervenant(new Role("Encadrant")); Encadrants = tmpEncadrants; } // Modifier un encadrant else if (indicateurChangement == 7) { Console.WriteLine("Vous avez choisi de modifier un encadrant. \nVoici la liste des encadrants actuels du projet."); AfficherListeIntervenants(Encadrants, "Encadrants"); Console.WriteLine(""); // Tant que l'utilisateur n'a pas indiqué un numéro d'encadrant valide bool errorEncadrant = false; bool doneModifEncadrant = false; while (!doneModifEncadrant) { if (errorEncadrant) { Console.WriteLine("Ce que vous avez rentré est incorrect, recommencez."); } Console.Write("Indiquez le numéro de l'encadrant à modifier : "); string repEncadrant = Console.ReadLine(); int indiceEncadrant = Program.TryParseReponse(repEncadrant); if (indiceEncadrant < 0 || indiceEncadrant > Livrables.Length) { errorEncadrant = true; } else { errorEncadrant = false; doneModifEncadrant = true; Console.WriteLine("\nIndiquez maintenant les informations relatives à l'encadrant."); Encadrants[indiceEncadrant - 1] = Intervenant.CreateIntervenant(new Role("Encadrant")); } } } // Ajouter un reviewer else if (indicateurChangement == 8) { Console.WriteLine("Vous avez choisi d'ajouter un nouveau reviewer. \nVoici la liste des reviewers actuels du projet.\n"); AfficherListeIntervenants(Reviewers, "Reviewers"); Console.WriteLine(""); Intervenant[] tmpReviewers = new Intervenant[Reviewers.Length + 1]; for (int i = 0; i < Reviewers.Length; i++) { tmpReviewers[i] = Reviewers[i]; } tmpReviewers[tmpReviewers.Length - 1] = Intervenant.CreateIntervenant(new Role("Reviewer")); Reviewers = tmpReviewers; } // Modifier un reviewer else if (indicateurChangement == 9) { Console.WriteLine("Vous avez choisi de modifier un reviewer. \nVoici la liste actuelle des reviewer du projet."); AfficherListeIntervenants(Reviewers, "Reviewers"); Console.WriteLine(""); // Tant que l'utilisateur n'a pas indiqué un numéro de reviewer valide bool errorReviewer = false; bool doneModifReviewer = false; while (!doneModifReviewer) { if (errorReviewer) { Console.WriteLine("Ce que vous avez rentré est incorrect, recommencez."); } Console.Write("Indiquez le numéro du reviewer à modifier : "); string repReviewer = Console.ReadLine(); int indiceReviewer = Program.TryParseReponse(repReviewer); if (indiceReviewer < 0 || indiceReviewer > Livrables.Length) { errorReviewer = true; } else { errorReviewer = false; doneModifReviewer = true; Console.WriteLine("\nIndiquez maintenant les informations relatives au reviewer."); Reviewers[indiceReviewer - 1] = Intervenant.CreateIntervenant(new Role("Reviewer")); } } } // Ajouter un élève else if (indicateurChangement == 10) { Console.WriteLine("Vous avez choisi d'ajouter un nouvel élève. \nVoici la liste actuelle des élèves du projet."); AfficherListeIntervenants(Eleves, "Eleves"); Console.WriteLine(""); Eleve[] tmpEleves = new Eleve[Eleves.Length + 1]; for (int i = 0; i < Eleves.Length; i++) { tmpEleves[i] = Eleves[i]; } Eleve newEleve = Intervenant.CreateIntervenant("eleve") as Eleve; tmpEleves[tmpEleves.Length - 1] = newEleve; Eleves = tmpEleves as Eleve[]; NbEleves = Eleves.Length; // Ajout de la promotion de l'élève à la liste de spromotions du projet List <string> promotions = new List <string>(); foreach (string promo in Promotions) { promotions.Add(promo); } if (!promotions.Contains(newEleve.Promotion)) { promotions.Add(newEleve.Promotion); } Promotions = promotions.ToArray(); } // Modifier un élève else if (indicateurChangement == 11) { Console.WriteLine("Vous avez choisi de modifier un élève. \nVoici la liste actuelle des élèves du projet."); AfficherListeIntervenants(Eleves, "Elèves"); Console.WriteLine(""); // Tant que l'utilisateur n'a pas indiqué un numéro de reviewer valide bool errorEleves = false; bool doneModifEleves = false; while (!doneModifEleves) { if (errorEleves) { Console.WriteLine("Ce que vous avez rentré est incorrect, recommencez."); } Console.Write("Indiquez le numéro de l'élève à modifier : "); string repEleve = Console.ReadLine(); int indiceEleve = Program.TryParseReponse(repEleve); if (indiceEleve < 0 || indiceEleve > Eleves.Length) { errorEleves = true; } else { errorEleves = false; doneModifEleves = true; Console.WriteLine("\nIndiquez maintenant les informations relatives à l'élève."); Eleves[indiceEleve - 1] = Intervenant.CreateIntervenant("eleve") as Eleve; } } } // Modifier la date de début else if (indicateurChangement == 12) { Console.Write("Vous avez choisi de modifier la date de début de projet. \n\nVoici la date de début actuelle :"); Console.WriteLine(DateDebut.GetDateFormatee()); Console.WriteLine(""); bool doneDateDebut = false; bool errorDateDebut = false; while (!doneDateDebut) { if (errorDateDebut) { Console.WriteLine("Ce que vous avez rentré est incorrect, recommencez."); } Console.Write("Rentrez votre nouvelle date de début au format DD/MM/YYYY : "); string repDate = Console.ReadLine(); if (Date.IsDate(repDate)) { DateDebut = new Date(repDate); errorDateDebut = false; doneDateDebut = true; } else { errorDateDebut = true; } } } // Modifier la date de fin else if (indicateurChangement == 13) { Console.Write("Vous avez choisi de modifier la date de fin du projet. \n\nVoici la date de fin actuelle :"); Console.WriteLine(DateFin.GetDateFormatee()); Console.WriteLine(""); bool doneDateFin = false; bool errorDateFin = false; while (!doneDateFin) { if (errorDateFin) { Console.WriteLine("Ce que vous avez rentré est incorrect, recommencez."); } Console.Write("Rentrez votre nouvelle date de fin au format DD/MM/YYYY : "); string repDate = Console.ReadLine(); if (Date.IsDate(repDate)) { DateFin = new Date(repDate); errorDateFin = false; doneDateFin = true; } else { errorDateFin = true; } } } }
//Méthodes /* * Interface de création d'un intervenant. Cette fonction permet de créer tous les types * d'intervenants possibles en demandant à l'utilisateur quel type d'intervenant il veut créer. */ public static Intervenant CreateIntervenant() { Console.Write("\nLe nom de la personne : "); string nom = Console.ReadLine(); Console.Write("Son Prénom : "); string prenom = Console.ReadLine(); //Sélection spécification de la classe intervenant string inputSpec; bool doneSpec = false; do { Console.WriteLine("Cette personne est un"); Console.WriteLine("Eleve : entrez 1, Enseignant : entrez 2, Externe : entrez 3, Autre : entrez 4"); Regex regSpec = new Regex("^[1-4]$"); inputSpec = Console.ReadLine(); if (regSpec.Match(inputSpec).Success) { doneSpec = true; } else { Console.WriteLine("Votre entrée est incorrecte"); } }while (!doneSpec); //Création des rôles de l'intervenant Console.WriteLine("\nVous allez maintenant rentrer le ou les rôles de cette personne."); List <Role> roles = new List <Role>(); bool doneRole = false; do { if (roles.Count == 0) { Console.Write("Indiquez le rôle de cette personne dans ce projet : "); } else { Console.Write("Indiquez un autre rôle ou entrez Y pour quitter : "); } string roleInput = Console.ReadLine(); if (roleInput.ToUpper() == "Y") { doneRole = true; } else { roles.Add(new Role(roleInput)); } }while (!doneRole); //Création de l'intervenant if (inputSpec == "1") //élève { return(Eleve.CreateEleve(nom, prenom, roles.ToArray())); } else if (inputSpec == "2") //enseignant { return(Enseignant.CreateEnseignant(nom, prenom, roles.ToArray())); } else if (inputSpec == "3")//externe { return(Externe.CreateExterne(nom, prenom, roles.ToArray())); } else { return(new Intervenant(nom, prenom, roles.ToArray())); } }