Ejemplo n.º 1
0
        /*
         * 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;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        //Méthodes

        public static Projet CreateProjet()
        {
            //Fonction nécessaires
            string AjoutIntitule()
            {
                Console.WriteLine("\nQuel est l'intitulé de votre projet ?");
                string tmpIntitule = Console.ReadLine();

                return(tmpIntitule);
            }

            string AjoutTypeProjet()
            {
                Console.WriteLine("\nQuel est le type de votre projet ?");
                string tmpType = Console.ReadLine();

                return(tmpType);
            }

            string[] AjoutPromotion(Eleve[] tabEleves)
            {
                List <string> listePromotions = new List <string>();

                foreach (Eleve e in tabEleves)
                {
                    if (!listePromotions.Contains(e.Promotion))
                    {
                        listePromotions.Add(e.Promotion);
                    }
                }

                return(listePromotions.ToArray());
            }

            string AjoutSujet()
            {
                Console.WriteLine("\nQuel est le sujet de votre projet ?");
                string sujet = Console.ReadLine();

                return(sujet);
            }

            string[] AjoutMotsCles()
            {
                Console.WriteLine("\nVeuillez choisir au moins un mot clé pour qualifier le projet.");
                List <string> listeMotsCles = new List <string>();
                bool          done          = false;

                while (!done)
                {
                    if (listeMotsCles.Count == 0)
                    {
                        Console.Write("Entrez un mot clé : ");
                    }
                    else
                    {
                        Console.Write("Entrez un mot clé ou tapez Y pour quitter : ");
                    }

                    string input = Console.ReadLine();

                    if (input.ToUpper() == "Y" && listeMotsCles.Count > 0)
                    {
                        done = true;
                    }
                    else
                    {
                        listeMotsCles.Add(input);
                    }
                }

                return(listeMotsCles.ToArray());
            }

            Intervenant AjoutClient()
            {
                Console.WriteLine("\nVous allez maintenant devoir renseigner le client du projet.");
                Intervenant tmpClient = Intervenant.CreateIntervenant(new Role("client"));

                return(tmpClient);
            }

            Livrable[] AjoutLivrables()
            {
                bool            doneLivrables  = false;
                List <Livrable> listeLivrables = new List <Livrable>();

                while (!doneLivrables)
                {
                    listeLivrables.Add(Livrable.CreateLivrable());

                    Console.WriteLine("\nVoulez-vous ajouter un autre livrable ? Y/N");
                    string repLivrable = Console.ReadLine();

                    if (repLivrable.ToUpper() == "N")
                    {
                        doneLivrables = true;
                    }
                }

                return(listeLivrables.ToArray());
            }

            Intervenant[] AjoutEncadrant()
            {
                Console.WriteLine("\nVous allez maintenant devoir renseigner les différents encadrants du projet.");

                List <Intervenant> listeEncadrants = new List <Intervenant>();
                bool doneEncadrants = false;

                do
                {
                    string rep = "";

                    if (listeEncadrants.Count == 0)
                    {
                        Console.WriteLine("\nRentrez à présent les informations du premier encadrant");
                        listeEncadrants.Add(Intervenant.CreateIntervenant(new Role("Encadrant")));
                    }
                    else
                    {
                        Console.WriteLine("\nVoulez-vous ajouter un autre encadrant ? Y/N");
                        rep = Console.ReadLine();

                        if (rep.ToUpper() == "Y")
                        {
                            listeEncadrants.Add(Intervenant.CreateIntervenant(new Role("Encadrant")));
                        }
                        else if (rep.ToUpper() == "N")
                        {
                            doneEncadrants = true;
                        }
                    }
                } while (!doneEncadrants);

                return(listeEncadrants.ToArray());
            }

            Intervenant[] AjoutReviewers()
            {
                Console.WriteLine("\nVous allez maintenant devoir renseigner les différents reviewers du projet.");

                List <Intervenant> listeReviewers = new List <Intervenant>();
                bool doneReviewers = false;

                do
                {
                    string rep = "";

                    if (listeReviewers.Count == 0)
                    {
                        Console.WriteLine("\nRentrez à présent les informations du premier reviewer");
                        listeReviewers.Add(Intervenant.CreateIntervenant(new Role("Reviewer")));
                    }
                    else
                    {
                        Console.WriteLine("\nVoulez-vous ajouter un autre reviewer ? Y/N");
                        rep = Console.ReadLine();

                        if (rep.ToUpper() == "Y")
                        {
                            listeReviewers.Add(Intervenant.CreateIntervenant(new Role("Reviewer")));
                        }
                        else if (rep.ToUpper() == "N")
                        {
                            doneReviewers = true;
                        }
                    }
                } while (!doneReviewers);

                return(listeReviewers.ToArray());
            }

            Eleve[] AjoutEleves()
            {
                Console.WriteLine("\nVous allez maintenant devoir renseigner les différents élèves présents sur le projet.");

                List <Eleve> ListeEleves = new List <Eleve>();
                bool         doneEleve   = false;

                do
                {
                    string rep = "";

                    if (ListeEleves.Count == 0)
                    {
                        Console.WriteLine("\nRentrez à présent les informations du premier élève");
                        ListeEleves.Add(Intervenant.CreateIntervenant("eleve") as Eleve);
                    }
                    else
                    {
                        Console.WriteLine("\nVoulez-vous ajouter un autre élève ? Y/N");
                        rep = Console.ReadLine();

                        if (rep.ToUpper() == "Y")
                        {
                            ListeEleves.Add(Intervenant.CreateIntervenant("eleve") as Eleve);                       //downcast car l'instance créée est un intervenant de base
                        }
                        else if (rep.ToUpper() == "N")
                        {
                            doneEleve = true;
                        }
                    }
                } while (!doneEleve);


                return(ListeEleves.ToArray());
            }

            Date AjoutDate(bool debut, bool error)
            {
                if (error == false)
                {
                    switch (debut)
                    {
                    case true:
                        Console.WriteLine("\nVeuillez rentrer une date de début du projet au format DD/MM/YYYY");
                        break;

                    case false:
                        Console.WriteLine("\nVeuillez rentrer une date de fin du projet au format DD/MM/YYYY");
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("\nCe que vous avez rentré est incorrect. Pour rappel le format de l'année est DD/MM/YYYY");
                }

                string input = Console.ReadLine();

                if (Date.IsDate(input))
                {
                    return(new Date(input));
                }
                else
                {
                    return(AjoutDate(debut, true));
                }
            }

            //Exécution

            string intitule    = AjoutIntitule();
            string type        = AjoutTypeProjet();
            string sujetProjet = AjoutSujet();

            string[] motsCles = AjoutMotsCles();

            Intervenant client = AjoutClient();

            Livrable[]    livrables  = AjoutLivrables();
            Intervenant[] encadrants = AjoutEncadrant();
            Intervenant[] reviewers  = AjoutReviewers();

            Eleve[] eleves   = AjoutEleves();
            int     nbEleves = eleves.Length;

            string[] promotions = AjoutPromotion(eleves);

            Date dateDebut = AjoutDate(true, false);
            Date dateFin   = AjoutDate(false, false);

            return(new Projet(intitule, type, nbEleves, promotions, sujetProjet, motsCles, client, livrables, encadrants, reviewers, eleves, dateDebut, dateFin));
        }