示例#1
0
 private void AjouterTacheAnnexe(int code, TacheAnnexe t)
 {
     if (!_tachesAnnexes.ContainsKey(code))
     {
         _tachesAnnexes.Add(code, t);
     }
     else
     {
         throw new ArgumentException(string.Format("La tache avec le code {0} existe déjà.", code));
     }
 }
示例#2
0
 /// <summary>
 /// Ajoute une tache (annexe ou de production) au projet
 /// </summary>
 /// <param name="t"></param>
 public void AjouterTache(Tache t)
 {
     if (t is TacheProd)
     {
         AjouterTacheProd(((TacheProd)t));
     }
     else
     {
         TacheAnnexe ta = (TacheAnnexe)t;
         AjouterTacheAnnexe(ta.NumTache, ta);
     }
 }
示例#3
0
        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.");
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            List <Employé> employés = new List <Employé>();

            Employé e1 = new Employé("GL", "Geneviève", "LECLERCQ", "ANA");

            employés.Add(e1);
            Employé e2 = new Employé("GL", "Geneviève", "LECLERCQ", "ANA");

            employés.Add(e2);
            Employé e3 = new Employé("GL", "Geneviève", "LECLERCQ", "CDP");

            employés.Add(e3);
            Employé e4 = new Employé("GL", "Geneviève", "LECLERCQ", "DEV");

            employés.Add(e4);
            Employé e5 = new Employé("GL", "Geneviève", "LECLERCQ", "DES");

            employés.Add(e5);
            Employé e6 = new Employé("GL", "Geneviève", "LECLERCQ", "DEV");

            employés.Add(e6);
            Employé e7 = new Employé("GL", "Geneviève", "LECLERCQ", "DES");

            employés.Add(e7);
            Employé e8 = new Employé("GL", "Geneviève", "LECLERCQ", "TES");

            employés.Add(e6);
            Employé e9 = new Employé("GL", "Geneviève", "LECLERCQ", "TES");

            employés.Add(e7);

            List <Version> versions1 = new List <Version>();
            Version        v1        = new Version
            {
                Numéro    = "1.00",
                Millésime = 2017,
                DateDébut = new DateTime(02, 01, 16),
                DatePubli = new DateTime(08, 01, 17),
            };

            versions1.Add(v1);
            Version v2 = new Version
            {
                Numéro    = "2.00",
                Millésime = 2018,
                DateDébut = new DateTime(28, 12, 16),
                DatePubli = new DateTime()
            };

            versions1.Add(v2);


            //Création de taches de production
            List <TacheProduction> listeprod = new List <TacheProduction>();
            TacheProduction        t1        = new TacheProduction(54, "Tache 1")
            {
                DureePrevue   = 60,
                DureeRealise  = 21,
                DureeRestante = 39,
                CodeEmployé   = "GL"
            };

            listeprod.Add(t1);

            TacheProduction t2 = new TacheProduction(74, "Tache 2")
            {
                DureePrevue   = 70,
                DureeRealise  = 31,
                DureeRestante = 39,
                CodeEmployé   = "GL"
            };

            listeprod.Add(t2);

            TacheProduction t3 = new TacheProduction(42, "Tache 3")
            {
                DureePrevue   = 80,
                DureeRealise  = 21,
                DureeRestante = 59,
                CodeEmployé   = "GL"
            };

            listeprod.Add(t3);
            //appel changement de la durée restante à 10 jours
            Console.WriteLine("Après modification, {0}", t3.ModificationDureeRestante(10));

            Console.ReadKey();
            Console.Clear();


            //création de taches annexes
            TacheAnnexe tA1 = new TacheAnnexe("Tache 1", 31, 45, new DateTime(2017, 2, 12))
            {
                CodeEmployé = "GL",
            };

            TacheAnnexe.TacheA.Add(tA1);

            TacheAnnexe tA2 = new TacheAnnexe("Tache 2", 74, 87, DateTime.Today)
            {
                CodeEmployé = "GL"
            };

            TacheAnnexe.TacheA.Add(tA2);
            DateTime    date1 = new DateTime(2017, 11, 05);
            TacheAnnexe tA3   = new TacheAnnexe("Tache 3", 82, 55, date1)
            {
                CodeEmployé = "HK"
            };

            TacheAnnexe.TacheA.Add(tA3);

            TacheAnnexe tA4 = new TacheAnnexe("Tache 3", 87, 12, new DateTime(2017, 5, 10))
            {
                CodeEmployé = "NP"
            };

            TacheAnnexe.TacheA.Add(tA4);

            //on affiche le cumul de la durée consacrée a réaliser une tache annexe
            Console.WriteLine(tA1.CumulTacheAEmployé("GL"));
            Console.WriteLine(tA1.CumulTaches("Tache 3"));
            Console.WriteLine(tA1.CumulTachesMois("Tache 3"));

            Console.ReadKey();
            Console.Clear();


            //Suivi de la classe DAL
            Console.WriteLine("Gestion de la classe DAL\n");
            //Chargement du fichier de données
            Dal données = new Job_Overview.Dal();

            données.ChargerDonnées();

            //Affichage du logiciel et des versions
            string        s        = string.Empty;
            List <string> versions = données.Versions();

            foreach (var a in versions)
            {
                s += a + ", ";
            }
            Console.WriteLine("Le logiciel {0} compte {1} versions qui sont: {2}",
                              données.Logiciel, versions.Count(), s);
            Console.ReadKey();
            Console.Clear();

            //Affichage de la liste des métiers et activités associées
            List <string> métiers = données.MétiersEtActivités();

            Console.WriteLine("La liste des métiers est la suivante :\n");

            foreach (var a in métiers)
            {
                Console.WriteLine(a.ToString());
            }

            Console.ReadKey();
            Console.Clear();

            //Affichade de la liste de personnes avec leur métier
            List <string> personnes = données.PersonnesEtMétier();

            Console.WriteLine("La liste des personnes avec leur métier est la suivante :\n");

            foreach (var a in personnes)
            {
                Console.WriteLine(a.ToString());
            }

            Console.ReadKey();
            Console.Clear();

            //Affichade de la liste des tâches
            List <string> tâches = données.ListeTâches();

            Console.WriteLine("La liste des tâches est la suivante :\n");

            foreach (var a in tâches)
            {
                Console.WriteLine(a.ToString());
            }

            Console.ReadKey();
            Console.Clear();



            //Saisie de la liste des activités annexes
            Console.WriteLine("Saisi des activités annexes\n");
            int nombre = 1; // declaration et initialisation de nombre

            SortedList <int, string> EntréeTaches = new SortedList <int, string>();

            while (nombre != 0)

            {
                bool   codeUnique;
                int    b;
                string a;
                Console.WriteLine("Veuillez saisir le code de la tache a ajouter :");
                try
                {
                    string test;
                    b = int.Parse(Console.ReadLine());
                    //pour le code b y a t-il un string deja existant dans EntréeTaches ?
                    codeUnique = EntréeTaches.TryGetValue(b, out test);
                    while (codeUnique == true)
                    {
                        Console.WriteLine("Erreur : Chaque code d'activité doit être unique");
                        Console.WriteLine("Veuillez saisir le code de la tache a ajouter :");
                        b          = int.Parse(Console.ReadLine());
                        codeUnique = EntréeTaches.TryGetValue(b, out test);
                    }


                    Console.WriteLine("Veuillez saisir le libellé de la tache a ajouter :");
                    a = Console.ReadLine();
                    // Console.WriteLine("Le libellé correspondant au code {0} est : {1}\n", b, a);
                    Tache n = new Tache(a, b);
                    EntréeTaches.Add(b, a);
                    Console.WriteLine("Veuillez entrer une valeur différente à 0.\nPour sortir, entrez 0.\n");
                    nombre = int.Parse(Console.ReadLine());
                    Console.WriteLine("");
                }
                catch (FormatException)
                {
                    Console.WriteLine("Erreur : Veuillez entrer un chiffre");
                }
            }

            Console.Clear();
            //affichage des activités annexes saisies
            Console.WriteLine("Liste des activités annexes saisies classées selon leur code :\n");
            foreach (var a in EntréeTaches)
            {
                Console.WriteLine("Code : {0}\nLibellé {1}\n\n", a.Key, a.Value);
            }
            Console.ReadKey();
            Console.Clear();



            //Suivie de la production
            Console.WriteLine("Suivi de la production\n");



            //Permet d'afficher les durées du travail restant et réalisé par une personne en rentrant son initial
            Console.WriteLine("Veuillez saisir le code de la personne afin d'obtenir sa durée de travail réalisé sur une version");
            string initial = Console.ReadLine();
            Result x       = new Result();

            int réalisé1, restante1, réalisé2, restante2;                                                   // création de variables int por recevoir la durée total du travail réalisé et restante

            x.CalculDureeTravailRealise(initial, out réalisé1, out restante1, out réalisé2, out restante2); //On recupère les durées grâce au out
            Console.WriteLine("Durée réalisée par {0} sur la version 1.00 : {1}\nDurée restante : {2}\nDurée réalisée par {0} sur la version 2.00 : {3}\nDurée restante : {4}", initial, réalisé1, restante1, réalisé2, restante2);

            Console.ReadKey();
            Console.Clear();

            //Permet l'affichage des jours de retard ou d'avance sur une version
            Console.WriteLine("État d'avancement des Versions :\n");
            Result ret = new Result();
            int    retard1, retard2, pourcentage1, pourcentage2;
            double pourcentage1Retard, pourcentage2Retard;

            ret.CalculNombreJour(out retard1, out retard2, out pourcentage1, out pourcentage2, out pourcentage1Retard, out pourcentage2Retard);
            if (retard1 < 0)
            {
                Console.WriteLine("Nombre de jours de retard sur la version 1.00 : {0} j\n Il y a donc {1}% de retard", Math.Abs(retard1), pourcentage1Retard);
            }
            else
            {
                Console.WriteLine("Nombre de jours d'avance sur la version 1.00 : {0} j\n Il y a donc {1}% d'avancement", retard1, pourcentage1);
            }

            if (retard2 < 0)
            {
                Console.WriteLine("Nombre de jours de retard sur la version 2.00 : {0} j\n Il y a donc {1}% de retard", Math.Abs(retard2), pourcentage2Retard);
            }
            else
            {
                Console.WriteLine("Nombre de jours d'avance sur la version 2.00 : {0} j\n Il y a donc {1}% d'avancement", retard2, pourcentage2);
            }

            Console.ReadKey();
            Console.Clear();



            // Affichage de la liste de la durée totale de travail par activités pour la version 1
            Result listeb = new Result();

            Console.WriteLine("\nAffichade de la liste de la durée totale de travail par activités pour la version 1.00");
            Console.WriteLine(listeb.CalculDureeTotal1());

            // Affichage de la liste de la durée totale de travail par activités pour la version 2
            Console.WriteLine("\nAffichade de la liste de la durée totale de travail par activités pour la version 2.00");
            Console.WriteLine(listeb.CalculDureeTotal2());

            Console.ReadKey();
            Console.Clear();
        }