/// <summary>
        /// Exporte l'objet RefEnumValeur passé en paramètre en un XmlElement
        /// </summary>
        /// <param name="EnumVal">Objet à transformer en XML</param>
        /// <param name="XmlDoc">XMLDocument racine</param>
        /// <returns></returns>
        private XmlElement getRefEnumValeurToXML(RefEnumValeur EnumVal, String ExportName, XmlDocument XmlDoc)
        {
            XmlElement elemEnum = XmlDoc.CreateElement(ExportName);

            XmlElement elemEnumDetail = XmlDoc.CreateElement("CleEnumValeur");
            elemEnumDetail.InnerText = EnumVal.CleEnumValeur.ToString();
            elemEnum.AppendChild(elemEnumDetail);

            elemEnumDetail = XmlDoc.CreateElement("Libelle");
            elemEnumDetail.InnerText = EnumVal.Libelle;
            elemEnum.AppendChild(elemEnumDetail);

            elemEnumDetail = XmlDoc.CreateElement("LibelleCourt");
            elemEnumDetail.InnerText = EnumVal.LibelleCourt;
            elemEnum.AppendChild(elemEnumDetail);

            elemEnumDetail = XmlDoc.CreateElement("NumeroOrdre");
            elemEnumDetail.InnerText = EnumVal.NumeroOrdre.ToString();
            elemEnum.AppendChild(elemEnumDetail);

            // ajout d'une information d'obligation de commentaire en fonction de l'état de l'analyse
            if (ExportName == "AnalyseEtat")
            {
                elemEnumDetail = XmlDoc.CreateElement("CommAnalyseObligatoire");
                elemEnumDetail.InnerText = (EnumVal.Valeur == "02" || EnumVal.Valeur == "03") ? "1" : "0";
                elemEnum.AppendChild(elemEnumDetail);
            }

            return elemEnum;
        }
 /// <summary>
 /// Créez un nouvel objet RefEnumValeur.
 /// </summary>
 /// <param name="cleEnumValeur">Valeur initiale de la propriété CleEnumValeur.</param>
 /// <param name="libelle">Valeur initiale de la propriété Libelle.</param>
 /// <param name="numeroOrdre">Valeur initiale de la propriété NumeroOrdre.</param>
 /// <param name="codeGroupe">Valeur initiale de la propriété CodeGroupe.</param>
 /// <param name="valeur">Valeur initiale de la propriété Valeur.</param>
 public static RefEnumValeur CreateRefEnumValeur(global::System.Int32 cleEnumValeur, global::System.String libelle, global::System.Int32 numeroOrdre, global::System.String codeGroupe, global::System.String valeur)
 {
     RefEnumValeur refEnumValeur = new RefEnumValeur();
     refEnumValeur.CleEnumValeur = cleEnumValeur;
     refEnumValeur.Libelle = libelle;
     refEnumValeur.NumeroOrdre = numeroOrdre;
     refEnumValeur.CodeGroupe = codeGroupe;
     refEnumValeur.Valeur = valeur;
     return refEnumValeur;
 }
        /// <summary>
        /// Exporte l'objet PP passé en paramètre en un XmlElement
        /// </summary>
        /// <param name="PP">Objet à transformer en XML</param>
        /// <param name="XmlDoc">XMLDocument racine</param>
        /// <returns></returns>
        //private XmlElement getPPToXML(Composition co, Pp PP, XmlDocument XmlDoc)
        private XmlElement getPPToXML(RefEnumValeur typEval, Pp PP, XmlDocument XmlDoc)
        {
            XmlElement elemPP = XmlDoc.CreateElement("PP");

            if (PP != null)
            {
                XmlElement elemPPdetails = XmlDoc.CreateElement("PPMesuree");
                elemPPdetails.InnerText = typEval != null ? "1" : "0";
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CleTypeEvaluation");
                elemPPdetails.InnerText = typEval != null ? typEval.CleEnumValeur.ToString() : String.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("TypeEvaluation");
                elemPPdetails.InnerText = typEval != null ? typEval.LibelleCourt : String.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("ClePP");
                elemPPdetails.InnerText = PP.ClePp.ToString();
                elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("CleCommune");
                //elemPPdetails.InnerText = PP.CleCommune != null ? PP.CleCommune.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CleNiveauSensibilite");
                elemPPdetails.InnerText = PP.CleNiveauSensibilite.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CleCategoriePP");
                elemPPdetails.InnerText = PP.CleCategoriePp.HasValue ? PP.CleCategoriePp.Value.ToString() : String.Empty;
                elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("ClePPOrigine");
                //elemPPdetails.InnerText = PP.ClePpOrigine.HasValue ? PP.ClePpOrigine.Value.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("EnumSurfaceTme");
                elemPPdetails.InnerText = PP.EnumSurfaceTme.HasValue ? PP.EnumSurfaceTme.Value.ToString() : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("CleUtilisateur");
                //elemPPdetails.InnerText = PP.CleUtilisateur != null ? PP.CleUtilisateur.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("EnumSurfaceTms");
                elemPPdetails.InnerText = PP.EnumSurfaceTms.HasValue ? PP.EnumSurfaceTms.Value.ToString() : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("EnumDureeEnrg");
                elemPPdetails.InnerText = PP.EnumDureeEnrg.HasValue ? PP.EnumDureeEnrg.Value.ToString() : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CleSecteur");
                elemPPdetails.InnerText = PP.CleSecteur.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("Secteur");
                elemPPdetails.InnerText = PP.GeoSecteur != null ? PP.GeoSecteur.LibelleSecteur : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("EnumPolarisation");
                elemPPdetails.InnerText = PP.EnumPolarisation.HasValue ? PP.EnumPolarisation.Value.ToString() : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("ClePortion");
                elemPPdetails.InnerText = PP.ClePortion.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("Libelle");
                elemPPdetails.InnerText = PP.Libelle != null ? PP.Libelle : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("Pk");
                elemPPdetails.InnerText = PP.Pk.ToString();
                elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("Commentaire");
                //elemPPdetails.InnerText = PP.Commentaire != null ? PP.Commentaire.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("DateMAJCommentaire");
                //elemPPdetails.InnerText = PP.DateMajCommentaire.HasValue ? PP.DateMajCommentaire.Value.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("PositionnementPostal");
                //elemPPdetails.InnerText = PP.PositionnementPostal != null ? PP.PositionnementPostal.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("CommentairePositionnement");
                //elemPPdetails.InnerText = PP.CommentairePositionnement != null ? PP.CommentairePositionnement : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CourantsVagabonds");
                elemPPdetails.InnerText = PP.CourantsVagabonds.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CourantsAlternatifsInduits");
                elemPPdetails.InnerText = PP.CourantsAlternatifsInduits.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("ElectrodeEnterreAmovible");
                elemPPdetails.InnerText = PP.ElectrodeEnterreeAmovible.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("TemoinEnterreAmovible");
                elemPPdetails.InnerText = PP.TemoinEnterreAmovible.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("TemoinMetalliqueDeSurface");
                elemPPdetails.InnerText = PP.TemoinMetalliqueDeSurface.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("Telemesure");
                elemPPdetails.InnerText = PP.PresenceDUneTelemesure.ToString();
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("PositionGPSLat");
                elemPPdetails.InnerText = PP.PositionGpsLat.HasValue ? PP.PositionGpsLat.Value.ToString() : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("PositionGPSLong");
                elemPPdetails.InnerText = PP.PositionGpsLong.HasValue ? PP.PositionGpsLong.Value.ToString() : string.Empty;
                elemPP.AppendChild(elemPPdetails);

                elemPPdetails = XmlDoc.CreateElement("CoordonneesGPSFiabilisee");
                elemPPdetails.InnerText = PP.CoordonneeGpsFiabilisee.ToString();
                elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("DateMiseEnService");
                //elemPPdetails.InnerText = PP.DateMiseEnService.HasValue ? PP.DateMiseEnService.Value.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("PPPoste");
                //elemPPdetails.InnerText = PP.PpPoste != null ? PP.PpPoste.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("Supprime");
                //elemPPdetails.InnerText = PP.Supprime != null ? PP.Supprime.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                //elemPPdetails = XmlDoc.CreateElement("DateMAJPP");
                //elemPPdetails.InnerText = PP.DateMajPp != null ? PP.DateMajPp.ToString() : string.Empty;
                //elemPP.AppendChild(elemPPdetails);

                if (typEval != null)
                {
                    // Dernière visite ayant le même type d'évaluation (Si EG, ECD convient également)
                    IEnumerable<Visite> visites = PP.Visites.Where(v => v.EnumTypeEval == typEval.CleEnumValeur || (typEval.Valeur == "1" && v.RefEnumValeur.Valeur == "2")).OrderByDescending(v => v.DateVisite);
                    elemPPdetails = XmlDoc.CreateElement("Visites");

                    if (visites.Count() > 0)
                    {
                        elemPPdetails.AppendChild(getVisiteToXML(visites.First(), XmlDoc));
                    }

                    // Génération d'une visite de saisie vide
                    XmlElement elemVisiteProteIN = XmlDoc.CreateElement("VisiteProteIN");

                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("CleUtilisateur"));

                    XmlElement elemVisiteProteINDetails = XmlDoc.CreateElement("EnumTypeEval");
                    elemVisiteProteINDetails.InnerText = typEval.CleEnumValeur.ToString();
                    elemVisiteProteIN.AppendChild(elemVisiteProteINDetails);

                    elemVisiteProteINDetails = XmlDoc.CreateElement("ClePP");
                    elemVisiteProteINDetails.InnerText = PP.ClePp.ToString();
                    elemVisiteProteIN.AppendChild(elemVisiteProteINDetails);

                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("CleEquipement"));

                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("DateVisite"));
                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("EstConfirmee"));
                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("CommentaireVisite"));
                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("CommentaireAnalyse"));
                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("CleAnalyse"));
                    elemVisiteProteIN.AppendChild(XmlDoc.CreateElement("MesMesures"));

                    elemPPdetails.AppendChild(elemVisiteProteIN);

                    elemPP.AppendChild(elemPPdetails);
                }
            }

            return elemPP;
        }
 /// <summary>
 /// Méthode déconseillée pour ajouter un nouvel objet à l'EntitySet RefEnumValeur. Utilisez la méthode .Add de la propriété ObjectSet&lt;T&gt; associée à la place.
 /// </summary>
 public void AddToRefEnumValeur(RefEnumValeur refEnumValeur)
 {
     base.AddObject("RefEnumValeur", refEnumValeur);
 }