// 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); }
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."); } }