/// <summary> /// Retourne une personne à partir de son nom /// </summary> /// <param name="nom">le nom de la personne saisie</param> /// <returns>un objet personne</returns> public Personne GetPersonne(string nom) { var newName = ""; foreach (var chaine in nom.ToLower().Split(' ')) { newName += StringUtils.FirstLetterUpper(chaine) + " "; } newName = newName.Trim(); Personne personne; if (ListePersonnes.Count(x => string.Equals(x.Nom.ToLower(), newName.ToLower())) > 0) { personne = ListePersonnes.FirstOrDefault(x => string.Equals(x.Nom.ToLower(), newName.ToLower())); } else { personne = new Personne { Id = 0, Nom = newName }; } return(personne); }
/// <summary> /// Ajoute une Personne p à la liste des personnes rattachées à la tache, ne fait rien si la personne est déjà rattachée /// </summary> /// <param name="p"></param> public void AjouterPersonne(Personne p) { if (!ListePersonnes.Contains(p)) { ListePersonnes.Add(p); } }
/// <summary> /// Cette fonction permet de récupérer les données du fichier texte et de la les stocker dans des variables afin de les exploiter. /// </summary> /// <param name="texte">Chemin du fichier à charger</param> public void ChargerFichier(string texte) { ListeTaches = new Dictionary <string, TachesProduction>(); TachesProduction tache; string[] fichier = File.ReadAllLines(texte); string[] temp; int compteur; Personnes tempPers = new Personnes(); Activités[] tabActivité = { Activités.ANF, Activités.ANT, Activités.ARF, Activités.ART, Activités.Aucun, Activités.DBE, Activités.DES, Activités.DEV, Activités.GDP, Activités.INF, Activités.RPT, Activités.TES }; for (int i = 1; i < fichier.Length - 1; i++) { temp = fichier[i].Split('\t'); ListePersonnes.TryGetValue(temp[2], out tempPers); compteur = 0; while (temp[3].CompareTo(string.Format("{0}", tabActivité[compteur])) != 0) { compteur++; } tache = new TachesProduction(temp[0], temp[1], tempPers, tabActivité[compteur], temp[4], Convert.ToDateTime(temp[5]), Convert.ToDouble(temp[6]), Convert.ToDouble(temp[7]), Convert.ToDouble(temp[8])); ListeTaches.Add(tache.Code, tache); } }
static void Main(string[] args) { Acteur[] mesActeurs = new Acteur[] { new Acteur("Assange", "Julian", new DateTime(1969, 3, 12), 187), new Acteur("Paul", "Newmann", new DateTime(1969, 3, 12), 187), new Acteur("Becker", "Norma Jean", new DateTime(1969, 3, 12), 187) }; MetteurEnScene[] mesDirecteurs = { new MetteurEnScene("Spielberg", "Steven", new DateTime(1969, 3, 12)), new MetteurEnScene("Coen", "Ettan", new DateTime(1969, 3, 12)), new MetteurEnScene("Coppolla", "Francis Ford", new DateTime(1969, 3, 12)) }; Film bigLebow = new Film("The Big Lebowski", 1996); Film eT = new Film("E.T.", 1982); eT.AjouterActeur(mesActeurs[0]); eT.AjouterActeur(mesActeurs[2]); eT.SetMetteurEnScene(mesDirecteurs[0]); bigLebow.AjouterActeur(mesActeurs[1]); bigLebow.AjouterActeur(mesActeurs[2]); bigLebow.SetMetteurEnScene(mesDirecteurs[1]); ListePersonnes mesPersonnes = ListePersonnes.GetInstance(); foreach (Acteur act in mesActeurs) { mesPersonnes.AjouterPersonne(act); } foreach (MetteurEnScene sceneur in mesDirecteurs) { mesPersonnes.AjouterPersonne(sceneur); } IEnumerator <Personne> acteurIt = mesPersonnes.ListePersonne(); while (acteurIt.MoveNext()) { Personne personne = acteurIt.Current; Console.WriteLine(personne); IEnumerator <Film> filmsIt; if (personne is Acteur) { Console.WriteLine("a joué dans les films suivant:"); filmsIt = ((Acteur)personne).FilmsIeEnumerator(); } else { if (personne is MetteurEnScene) { Console.WriteLine("a dirigé les films suivant:"); filmsIt = ((MetteurEnScene)personne).Films(); } else { Console.WriteLine("Est inconnu et n'a rien à faire ici !!! "); continue; } } while (filmsIt.MoveNext()) { Film film = filmsIt.Current; Console.WriteLine(film); } } String i = Console.ReadLine(); }
/// <summary> /// Retourne une liste de personnes à partir d'une chaine /// </summary> /// <param name="query">la chaine à rechercher</param> /// <returns>la liste de personne trouvé</returns> public IEnumerable <Personne> GetSearchPersonnes(string query) { return(ListePersonnes.Where(c => c.Nom.IndexOf(query, StringComparison.CurrentCultureIgnoreCase) > -1).OrderByDescending(c => c.Nom.StartsWith(query, StringComparison.CurrentCultureIgnoreCase))); }