// Tester si une exception est levée lorsqu'une tache annexe est créée avec un code déjà existant public void TestAjouterTacheAnnexe() { Projet p = new Projet(); p.AjouterTache(new TacheAnnexe(10, "coucou10")); // Ajout d'une tache annexe avec un code déjà existant p.AjouterTache(new TacheAnnexe(10, "coucou20")); }
/// <summary> /// Charge les données du fichier passé en paramètre et renvoi le projet instancié /// </summary> /// <param name="path"></param> /// <returns></returns> private static Projet ChargerDonnées(string path) { Projet projet = new Projet(); string[] data = File.ReadAllLines(path); string[] ligne; // Tableau dont chaque élément contiendra toutes les informations pour instancier une tache de production for (int i = 1; i < data.Length; i++) { ligne = data[i].Split('\t'); projet.AjouterTache(new TacheProd(int.Parse(ligne[0]), ligne[1], DicoEmployés[ligne[2]], DicoActivitésProd[ligne[3]], ligne[4], DateTime.Parse(ligne[5]), int.Parse(ligne[6]), int.Parse(ligne[7]), int.Parse(ligne[8]))); } return(projet); }
static void Main(string[] args) { Projet genomica = DAL.ChargerProjet(@"D:\ProjetConsole\ProjetConsole\Job Overview\Feuille de calcul dans D ProjetConsole Projet JobOverview - 1.txt"); // Test de divers fonction de Results sur le projet genomica Results resultats = new Results(genomica); Console.WriteLine(resultats.RetournerDuréesTravail("2.00")); Console.WriteLine(); Console.WriteLine(resultats.RetournerDuréesVersion("1.00")); Console.WriteLine(); Console.WriteLine(resultats.RetournerDuréesActivitésVersion("2.00")); Console.WriteLine(); string réponse; bool continuer = true; while (continuer) // Tant que l'utilisateur veut saisir des activités annexes { continuer = false; Console.WriteLine("Voulez-vous saisir des activités annexes? (O/N)"); réponse = Console.ReadLine().ToLower(); if (réponse == "o") { SaisirDonnéesTacheAnnexe(genomica); continuer = true; } else if (réponse != "n") { continuer = true; } } // Affiche les informations sur les taches annexes Console.Clear(); Console.WriteLine(resultats.RetournerInfosTachesAnnexes()); // TODO (optionnel) : Main(), gérer la demande d'un nouveau CodeTache si il existe déjà Console.ReadKey(); }
public static void SaisirDonnéesTacheAnnexe(Projet p) { // Récupère et teste quand nécessaire les informations nécessaires à la création d'une tache annexe Console.WriteLine("Saisir les informations suivantes :\n\t- un numéro CodeTache (doit être unique)"); int codeTache; while (!int.TryParse(Console.ReadLine(), out codeTache)) { Console.WriteLine("Mauvaise saisie."); } Console.WriteLine("\t- Libellé :"); string libellé = Console.ReadLine(); Console.WriteLine("\t- Activité (\"INDEFINI\", \"APPUI\", \"REUNION\", \"DDP\", \"EVENT\") :"); string activité = Console.ReadLine(); Console.WriteLine("\t- Code personne (peut être spécifié plus tard) :"); string codePers = Console.ReadLine(); Console.WriteLine("\t- Date de début au format DD/MM/YYYY ou \"Aucune\" (si aucune : aujourd'hui) :"); DateTime dateDéb; string rep = Console.ReadLine(); bool boolDateDéb; while (!(boolDateDéb = DateTime.TryParse(rep, out dateDéb)) && rep != "Aucune") { Console.WriteLine("Saisie invalide"); rep = Console.ReadLine(); } bool boolDateFin = false; DateTime dateFin = DateTime.MaxValue; if (boolDateDéb) { Console.WriteLine("\t- Date de fin au format DD/MM/YYYY ou \"Aucune\" (si aucune, la tache n'a pas de date de fin) :"); rep = Console.ReadLine(); while (!(boolDateFin = DateTime.TryParse(rep, out dateFin)) && rep != "Aucune") { Console.WriteLine("Saisie invalide"); rep = Console.ReadLine(); } } // TODO (optionnel) : Program::SaisirDonnéesTacheAnnexe(...) gérer si DateFin < DateDébut try // Tente d'instancier une tache annexe avec les informations fournies par l'utilisateur { TacheAnnexe tacheA = new TacheAnnexe(codeTache, libellé, codePers, activité); if (boolDateDéb) { if (boolDateFin) { tacheA = new TacheAnnexe(codeTache, libellé, dateDéb, dateFin, codePers, activité); } else { tacheA = new TacheAnnexe(codeTache, libellé, dateDéb, codePers, activité); } } p.AjouterTache(tacheA); } catch (ArgumentException e) // Informe l'utilisateur qu'une erreur a eu lieu et que la tache n'a pas été ajouté { Console.WriteLine(e.Message); Console.WriteLine("La tache n'a pas pu être ajoutée."); } }
/// <summary> /// Charge un nouveau projet /// </summary> /// <param name="p"></param> public void ChargerProjet(Projet p) { Projet = p; }
} // Projet dont les résultats seront retournés l'appel des différentes méthodes de la classe #endregion #region Constructeurs /// <summary> /// Constructeur prenant en paramètre le projet dont les résultats seront affichés /// </summary> /// <param name="p"></param> public Results(Projet p) { Projet = p; }