public bool LoadFromDeveloppezXML(MagazineTypeCategorie categorie, XDocument xDoc) { bool ok = true; XElement xRoot = xDoc.Root; this.XDocument = xDoc; this.Categorie = categorie; if (xRoot.Name == "document") { XElement xTitre = xRoot.XPathSelectElement("entete/titre/article"); XElement xSynopsis = xRoot.XPathSelectElement("synopsis"); XElement xRubrique = xRoot.XPathSelectElement("entete/rubrique"); XElement xSummary = xRoot.XPathSelectElement("summary"); XElement xURL = xRoot.XPathSelectElement("entete/urlhttp"); IEnumerable <XElement> xAuteurs = xRoot.XPathSelectElements("authorDescriptions/authorDescription"); List <AuteurType> auteurs = new List <AuteurType>(); this.Titre = xTitre.Value; this.Synopsis = Contenu.Create(this, xSynopsis, ContenuContexteEnum.ZoneRedigee); this.Rubrique = CategorieExtension.FromID(xRubrique.Value).ToLabel(); this.Contenu = Contenu.Create(this, xSummary, ContenuContexteEnum.Contenu); this.URL = xURL.Value; foreach (XElement xAuteur in xAuteurs) { AuteurType auteur = AuteurType.LoadFromDeveloppezXML(xAuteur); if (auteur != null) { auteurs.Add(auteur); } } this.Auteurs = auteurs; } else { ok = false; } return(ok); }
internal static AuteurType LoadFromDeveloppezXML(XElement xAuteur) { AuteurType auteur = new AuteurType(); XElement xFullName = xAuteur.XPathSelectElement("fullname"); XElement xURL = xAuteur.XPathSelectElement("url"); XAttribute xRole = xAuteur.Attribute("role"); if (xFullName != null) { auteur.NomComplet = xFullName.Value; } if (xURL != null) { auteur.URL = xURL.Value; } if (xRole != null) { switch (xRole.Value) { case "auteur": auteur.Role = AuteurRoleEnum.Auteur; break; case "traducteur": auteur.Role = AuteurRoleEnum.Traducteur; break; default: auteur = null; break; } } else { auteur = null; } return(auteur); }