/// <summary> /// Export d'une tournée au format XML /// </summary> /// <param name="To">la tournée a exporter</param> /// <param name="XmlDoc"></param> /// <returns></returns> public XmlElement GetTourneeToXml(Tournee To, XmlDocument XmlDoc) { XmlElement princ = XmlDoc.CreateElement("Tournee"); XmlElement elem = XmlDoc.CreateElement("CleTournee"); elem.InnerText = To.CleTournee.ToString(); princ.AppendChild(elem); //elem = XmlDoc.CreateElement("CleUtilisateur"); //elem.InnerText = To.CleUtilisateur.HasValue ? To.CleUtilisateur.Value.ToString() : string.Empty; //princ.AppendChild(elem); // Agent de mesure princ.AppendChild(XmlDoc.CreateElement("CleUtilisateur")); princ.AppendChild(XmlDoc.CreateElement("PrenomAgent")); princ.AppendChild(XmlDoc.CreateElement("NomAgent")); //Instruments princ.AppendChild(XmlDoc.CreateElement("Instruments")); elem = XmlDoc.CreateElement("Libelle"); elem.InnerText = To.Libelle; princ.AppendChild(elem); elem = XmlDoc.CreateElement("CodeTournee"); elem.InnerText = To.CodeTournee; princ.AppendChild(elem); elem = XmlDoc.CreateElement("Commentaire"); elem.InnerText = To.Commentaire; princ.AppendChild(elem); elem = XmlDoc.CreateElement("DateCreation"); elem.InnerText = To.DateCreation.HasValue ? To.DateCreation.Value.ToString() : string.Empty; princ.AppendChild(elem); elem = XmlDoc.CreateElement("Numero"); elem.InnerText = To.Numero.ToString(); princ.AppendChild(elem); XmlElement elemPPs = XmlDoc.CreateElement("PPs"); XmlElement elemEQs = XmlDoc.CreateElement("Equipements"); XmlElement elemPOs = XmlDoc.CreateElement("Portions"); XmlElement elemEEs = XmlDoc.CreateElement("EnsemblesElectriques"); // Composition par Equipement IEnumerable<Composition> EQs = To.Compositions.Where(co => co.CleEquipement.HasValue && !co.EqEquipement.Supprime).OrderBy(co => co.NumeroOrdre); foreach (var eq in EQs) { elemEQs.AppendChild(getEquipementToXML(eq, XmlDoc)); } // Composition par PP IEnumerable<SortedPpAndTypeEval> PPs = To.Compositions.Where(co => co.ClePp.HasValue && !co.Pp.Supprime).Select(co => new SortedPpAndTypeEval() { NumeroOrdre = co.NumeroOrdre, Pp = co.Pp, TypeEval = co.RefEnumValeur }); IEnumerable<int> clePPs = PPs.Select(p => p.Pp.ClePp); IEnumerable<SortedPpAndTypeEval> PPNonMesurees = EQs.Where(co => !clePPs.Contains(co.EqEquipement.ClePp)).GroupBy(co => new { co.EqEquipement.Pp, co.NumeroOrdre }).Select(c => new SortedPpAndTypeEval() { NumeroOrdre = c.Min(t => t.NumeroOrdre), Pp = c.Key.Pp }).Distinct(); PPs = PPs.Union(PPNonMesurees).OrderBy(pp => pp.NumeroOrdre); foreach (var pp in PPs) { elemPPs.AppendChild(getPPToXML(pp.TypeEval, pp.Pp, XmlDoc)); } //IEnumerable<Composition> PPs = To.Compositions.Where(co => co.ClePp.HasValue && !co.Pp.Supprime).OrderBy(co => co.NumeroOrdre); //foreach (var pp in PPs) //{ // elemPPs.AppendChild(getPPToXML(pp, null, XmlDoc)); //} //IEnumerable<int> clePPs = PPs.Select(p => p.ClePp.Value); //IEnumerable<Pp> PPNonMesurees = EQs.Where(co => !clePPs.Contains(co.EqEquipement.ClePp)).Select(co => co.EqEquipement.Pp).Distinct(); //foreach (var pp in PPNonMesurees) //{ // elemPPs.AppendChild(getPPToXML(null, pp, XmlDoc)); //} // Composition par portion IEnumerable<PortionIntegrite> PIs = To.Compositions.Where(co => co.ClePortion.HasValue && !co.PortionIntegrite.Supprime).Select(co => co.PortionIntegrite).OrderBy(pi => pi.Libelle); if (!PIs.Any()) { PIs = PPs.Select(co => co.Pp.PortionIntegrite); PIs = PIs.Union(EQs.Select(co => co.EqEquipement.Pp.PortionIntegrite)).Distinct().OrderBy(pi => pi.Libelle); } foreach (var pi in PIs) { elemPOs.AppendChild(getPortionIntegriteToXML(pi, XmlDoc)); } // Composition par Ensemble électrique IEnumerable<EnsembleElectrique> EEs = To.Compositions.Where(co => co.CleEnsElectrique.HasValue && !co.EnsembleElectrique.Supprime).Select(co => co.EnsembleElectrique); EEs = EEs.Union(PIs.Select(pi => pi.EnsembleElectrique)).Distinct().OrderBy(ee => ee.Libelle); if (!EEs.Any()) { EEs = PPs.Select(co => co.Pp.PortionIntegrite.EnsembleElectrique); EEs = EEs.Union(EQs.Select(co => co.EqEquipement.Pp.PortionIntegrite.EnsembleElectrique)).Distinct().OrderBy(ee => ee.Libelle); } foreach (var EE in EEs) { elemEEs.AppendChild(getEnsembleElectriqueToXML(EE, XmlDoc)); } princ.AppendChild(elemEEs); princ.AppendChild(elemPOs); princ.AppendChild(elemPPs); princ.AppendChild(elemEQs); return princ; }
/// <summary> /// Créez un nouvel objet Tournee. /// </summary> /// <param name="cleTournee">Valeur initiale de la propriété CleTournee.</param> /// <param name="libelle">Valeur initiale de la propriété Libelle.</param> /// <param name="supprime">Valeur initiale de la propriété Supprime.</param> /// <param name="verrouille">Valeur initiale de la propriété Verrouille.</param> public static Tournee CreateTournee(global::System.Int32 cleTournee, global::System.String libelle, global::System.Boolean supprime, global::System.Boolean verrouille) { Tournee tournee = new Tournee(); tournee.CleTournee = cleTournee; tournee.Libelle = libelle; tournee.Supprime = supprime; tournee.Verrouille = verrouille; return tournee; }
/// <summary> /// Export des données de référence pour les tournées /// </summary> /// <param name="To">la tournée a exporter</param> /// <param name="XmlDoc"></param> /// <returns></returns> public XmlElement GetTourneeRefDataToXml(Tournee To, XmlDocument XmlDoc) { XmlElement princ = XmlDoc.CreateElement("ListeReference"); XmlElement elem = XmlDoc.CreateElement("Parametres"); RefParametre param = this.ObjectContext.RefParametre.FirstOrDefault(r => r.Libelle == "SEUIL_INFERIEUR_UCANA"); if (param != null) { XmlElement elemDetail = XmlDoc.CreateElement("Parametre"); elemDetail.SetAttribute("Name", param.Libelle); elemDetail.SetAttribute("Valeur", param.Valeur); elem.AppendChild(elemDetail); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("TypeEvaluations"); IEnumerable<RefEnumValeur> vals = this.ObjectContext.RefEnumValeur.Where(r => r.CodeGroupe == "TYPE_EVAL").OrderBy(r => r.NumeroOrdre); foreach (RefEnumValeur item in vals) { elem.AppendChild(getRefEnumValeurToXML(item, "TypeEvaluation", XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("DureeEnregistrements"); vals = this.ObjectContext.RefEnumValeur.Where(r => r.CodeGroupe == "PP_DUREE_ENRG").OrderBy(r => r.NumeroOrdre); foreach (RefEnumValeur item in vals) { elem.AppendChild(getRefEnumValeurToXML(item, "DureeEnregistrement", XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("Polarisations"); vals = this.ObjectContext.RefEnumValeur.Where(r => r.CodeGroupe == "PP_POLARISATION").OrderBy(r => r.NumeroOrdre); foreach (RefEnumValeur item in vals) { elem.AppendChild(getRefEnumValeurToXML(item, "Polarisation", XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("SurfaceTMEs"); vals = this.ObjectContext.RefEnumValeur.Where(r => r.CodeGroupe == "PP_SURFACE_TME").OrderBy(r => r.NumeroOrdre); foreach (RefEnumValeur item in vals) { elem.AppendChild(getRefEnumValeurToXML(item, "SurfaceTME", XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("SurfaceTMSs"); vals = this.ObjectContext.RefEnumValeur.Where(r => r.CodeGroupe == "PP_SURFACE_TMS").OrderBy(r => r.NumeroOrdre); foreach (RefEnumValeur item in vals) { elem.AppendChild(getRefEnumValeurToXML(item, "SurfaceTMS", XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("AnalyseEtats"); vals = this.ObjectContext.RefEnumValeur.Where(r => r.CodeGroupe == "AN_ETAT_PC").OrderBy(r => r.NumeroOrdre); foreach (RefEnumValeur item in vals) { elem.AppendChild(getRefEnumValeurToXML(item, "AnalyseEtat", XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("NiveauxSensibilites"); foreach (RefNiveauSensibilitePp item in this.ObjectContext.RefNiveauSensibilitePp) { elem.AppendChild(getNiveauSensibiliteToXML(item, XmlDoc)); } princ.AppendChild(elem); elem = XmlDoc.CreateElement("CategoriesPP"); foreach (CategoriePp item in this.ObjectContext.CategoriePp) { elem.AppendChild(getCategoriePPToXML(item, XmlDoc)); } princ.AppendChild(elem); // Données Utilisateurs XmlElement elemUtilisateur = XmlDoc.CreateElement("Utilisateurs"); IQueryable<UsrUtilisateur> users = this.FindUsrUtilisateurByCleTournee(To.CleTournee); foreach (UsrUtilisateur user in users) { elemUtilisateur.AppendChild(getUsrUtilisateurToXML(user, XmlDoc)); } princ.AppendChild(elemUtilisateur); // Données Instruments XmlElement elemInstrument = XmlDoc.CreateElement("Instruments"); IQueryable<InsInstrument> instruments = FindInsInstrumentByCleTournee(To.CleTournee); foreach (InsInstrument instrument in instruments) { elemInstrument.AppendChild(getInsInstrumentToXML(instrument, XmlDoc)); } princ.AppendChild(elemInstrument); return princ; }
/// <summary> /// Méthode déconseillée pour ajouter un nouvel objet à l'EntitySet Tournees. Utilisez la méthode .Add de la propriété ObjectSet<T> associée à la place. /// </summary> public void AddToTournees(Tournee tournee) { base.AddObject("Tournees", tournee); }