public static string DuréeTravail(Personnes personne, string version, DAL dal) { //Retourne la durée réalisée sur la version par la personne var d = dal.ListeDonnées.Where(a => a.Value.Personne.Code == personne.Code) .Where(b => b.Value.Version.Numéro == version).Sum(c => c.Value.Tache.DuréeRéalisée); //Retourne la durée restante sur la version pour la personne var d2 = dal.ListeDonnées.Where(a => a.Value.Personne.Code == personne.Code) .Where(b => b.Value.Version.Numéro == version).Sum(c => c.Value.Tache.DuréeRestante); //Retourne un format d'affichage return(string.Format("Sur la version {0}, {1} {2} a réalisé {3} jours de travail, et il lui reste {4} jours de planifiés", version, personne.Prenom, personne.Nom, d, d2)); }
public static void InitPersonne(ref Dictionary <string, Personnes> listePersonne, ref Dictionary <CodeMetiers, Metiers> listeMétier) { //Initialisation des métiers et activités dans la liste Métier listeMétier.Add(CodeMetiers.ANA, new Metiers { Activité = Activités.DBE | Activités.ARF | Activités.ANF, LibelléActivité = LibelléActivités.DéfinitionDesBesoins | LibelléActivités.ArchitectureFonctionnelle | LibelléActivités.AnalyseFonctionnelle, CodeMetier = CodeMetiers.ANA, LibelléMetier = LibelléMetiers.Analyste }); listeMétier.Add(CodeMetiers.CDP, new Metiers { Activité = Activités.ARF | Activités.ANF | Activités.ART | Activités.TES | Activités.GDP, LibelléActivité = LibelléActivités.ArchitectureFonctionnelle | LibelléActivités.AnalyseFonctionnelle | LibelléActivités.ArchitectureTechnique | LibelléActivités.Test | LibelléActivités.GestionDeProjet, CodeMetier = CodeMetiers.CDP, LibelléMetier = LibelléMetiers.ChefDeProjet }); listeMétier.Add(CodeMetiers.DEV, new Metiers { Activité = Activités.ANF | Activités.ART | Activités.ANT | Activités.DEV | Activités.TES, LibelléActivité = LibelléActivités.AnalyseFonctionnelle | LibelléActivités.ArchitectureTechnique | LibelléActivités.AnalyseTechnique | LibelléActivités.Développement | LibelléActivités.Test, CodeMetier = CodeMetiers.DEV, LibelléMetier = LibelléMetiers.Développeur }); listeMétier.Add(CodeMetiers.DES, new Metiers { Activité = Activités.ANF | Activités.DES | Activités.INF, LibelléActivité = LibelléActivités.AnalyseFonctionnelle | LibelléActivités.Design | LibelléActivités.Infographie, CodeMetier = CodeMetiers.DES, LibelléMetier = LibelléMetiers.Designer }); listeMétier.Add(CodeMetiers.TES, new Metiers { Activité = Activités.RPT | Activités.TES, LibelléActivité = LibelléActivités.RédactionDePlanDeTest | LibelléActivités.Test, CodeMetier = CodeMetiers.TES, LibelléMetier = LibelléMetiers.Testeur }); //Génération des instances personnes d'après fichier dans le dictionnaire associé string chemin = @"..\..\Personne.txt"; int compteur = 0; using (StreamReader str = new StreamReader(chemin, System.Text.Encoding.Default)) { string ligne; while ((ligne = str.ReadLine()) != null) //Boucle tant qu'il y a des lignes à lire { compteur++; var tab = ligne.Split('\t'); try { //Initialise une instance de Personne var Personne = new Personnes { Code = tab[0], Prenom = tab[1], Nom = tab[2], Métier = listeMétier[(CodeMetiers)Enum.Parse(typeof(CodeMetiers), tab[3])] }; //Ajout de l'instance DonnéesGestionTaches à la collection de données listePersonne.Add(Personne.Code, Personne); } catch (FormatException) { //Lève une exception si le format des données du fichier n'est pas bon. throw new FormatException("\bUne erreur de format a été identifié dans le fichier de données à la ligne"); } } } }
public static void AfficherTravailPersonne(List <Production> data, List <Personnes> personnes) { string saisiea, saisieb; int travReal, travRest; Console.WriteLine("Quelle est la version de logiciel sur laquelle vous voulez avoir une information, 1.00 ou 2.00?"); saisiea = Console.ReadLine(); Console.WriteLine("Pour quelle personne voulez-vous avoir une information? initiale"); saisieb = Console.ReadLine(); Personnes p = Personnes.TrouverNom(personnes, saisieb); travReal = Results.DuréeTravailRéaliséPersonne(data, saisieb, saisiea); travRest = Results.DuréeTravailRestantPersonne(data, saisieb, saisiea); Console.WriteLine("Sur la version {0}, {1} {2} a réalisé {3} jours de travail, et il lui reste {4} jours de planifiés.", saisiea, p.Prénom, p.Nom, travReal, travRest); }
static void Main(string[] args) { var a1 = new DAL(); //on appelle le constructeur de la classe DAL donc on instancie une nouvelle liste a1.ChargeFichier(); // appel de la méthode charge fichier et chargement des données dans la nouvelle liste var listannexe = new List <Annexes>(); //on instancie une nouvelle liste d'annexe Annexes.SaisieAnnexe(listannexe); //on appelle la méthode statique SaisieAnnexe, on envoie à la méthode grâce à son paramétre la nouvelle liste d'annexe vide Annexes.AffichageAnnexe(listannexe); var personnes = new List <Personnes>();// on instancie une nouvelle liste de personnes Personnes.RemplissagePersonne(personnes); var métiers = new Métiers();//on appelle le constructeur par défault (sans paramétre) de la classe Métiers donc on instancie un nouveau métier métiers.RemplissageMétier(); var activités = new Activités();//on appelle le constructeur par défault (sans paramétre) de la classe Métiers donc on instancie une nouvelle activité activités.RemplissageActivité(); int choix1 = 1; int choix2; while (choix1 == 1 || choix1 == 2 || choix1 == 3) { Console.WriteLine("1 - Saisir des activités annexes."); Console.WriteLine("2 - Afficher des résultats."); Console.WriteLine("3 - Changer la durée restante d'une tâche."); Console.WriteLine("4 - Quitter."); choix1 = int.Parse(Console.ReadLine()); switch (choix1) { case 1: Annexes.SaisieAnnexe(listannexe); break; case 2: Console.WriteLine("1 - Concernant une activité."); Console.WriteLine("2 - Concernant une personne."); Console.WriteLine("3 - Concernant le pourcentage d'avancement."); Console.WriteLine("4 - Revenir au menu précédent."); Console.WriteLine("5 - Quitter."); choix2 = int.Parse(Console.ReadLine()); switch (choix2) { case 1: Results.AfficherTravailActivité(a1.Data, activités); break; case 2: Results.AfficherTravailPersonne(a1.Data, personnes); break; case 3: Results.AfficherPourcentage(a1.Data); break; case 4: break; case 5: choix1 = 4; break; default: break; } break; case 3: if (Production.ChangerDuréeTache(a1.Data)) { Console.WriteLine("Changement effectué avec succès."); } else { Console.WriteLine("Changement impossible !"); } break; default: break; } } Console.ReadKey(); }