/// <summary> /// Affiche de façon formatée les données des dossiers contenus dans une liste de dossiers /// Cette méthode affiche les dossiers compets avec les prestations et intervenants. /// </summary> /// <param name="lesDossiers">Les Dossiers à afficher</param> public static void AfficherDossiers(List <Dossier> lesDossiers) { foreach (Dossier unDossier in lesDossiers) { TraitementXML.AfficherDossier(unDossier); } }
/// <summary> /// construit, à partir d'un noeud XML un objet de la classe Dossier. /// Avec, ses prestations et les intervenants des prestations /// </summary> /// <param name="unDossierXML">Elément XML du dossier à créer</param> /// <returns>Un objet de la classe Dossier</returns> public static Dossier XmlToDossier(XmlElement unDossierXML) { string nom = unDossierXML.ChildNodes[0].InnerText; string prenom = unDossierXML.ChildNodes[1].InnerText; DateTime dateNaissance = TraitementXML.XmlToDateTime((XmlElement)unDossierXML.ChildNodes[2]); if (unDossierXML.GetElementsByTagName("dossierprestations").Count == 0) { // pas de prestation return(new Dossier(nom, prenom, dateNaissance)); } else { // au moins une prestation XmlNodeList lesPrestations = (unDossierXML.GetElementsByTagName("dossierprestations")[0]).ChildNodes; List <Prestation> lesPrestationsDuDossier = new List <Prestation>(); foreach (XmlElement unePrestation in lesPrestations) { int idPrestation = Convert.ToInt32(unePrestation.GetAttribute("idprestation")); XmlElement unePrestationXML = CherchePrestation(idPrestation); Prestation prestation = XmlToPrestation(unePrestationXML); lesPrestationsDuDossier.Add(prestation); } return(new Dossier(nom, prenom, dateNaissance, lesPrestationsDuDossier)); } }
static void Main(string[] args) { try { List <Dossier> lesDossiers = new List <Dossier>(); // Chargement du fichier et initialisation des collections de noeuds XML //lesDossiers, lesPrestations, lesIntervenants TraitementXML.ChargeFichierXML(); // Chargement de la collection des objets de la classe Dossier lesDossiers = TraitementXML.XmlToDossiers(); Console.WriteLine("Nombre de dossiers : " + lesDossiers.Count); // Affichage des dossiers TraitementXML.AfficherDossiers(lesDossiers); // Gestion des intervenants Console.WriteLine("\n\n----- Gestion des intervenants -----"); // Chargement de la collection des objets de la classe Intervenant et IntevenantExterne List <Intervenant> lesIntervenants = TraitementXML.XmlToIntervenants(); // affichage des intervenants TraitementXML.AfficherIntervenants(lesIntervenants); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read(); }
/// <summary> /// construit, à partir d'un noeud XML un objet de la classe Prestation. /// Avec son Intervenant /// </summary> /// <param name="unePrestationXML">Elément XML de la prestation à créer</param> /// <returns>Un objet de la classe Prestation</returns> private static Prestation XmlToPrestation(XmlElement unePrestationXML) { string libellePrestation = unePrestationXML.ChildNodes[0].InnerText; DateTime datePrestation = TraitementXML.XmlToDateTime((XmlElement)unePrestationXML.ChildNodes[1]); int idIntervenant = Convert.ToInt32(unePrestationXML.GetAttribute("idintervenant")); XmlElement unIntervenantXML = ChercheIntervenant(idIntervenant); Intervenant unIntervenant = TraitementXML.XmlToIntervenant(unIntervenantXML); return(new Prestation(libellePrestation, datePrestation, unIntervenant)); }