private void GenererJeuTestOuvrage()
        {
            string MonSuffixe = " " + OuvrageSuffixe01;

            // Création d'un ensemble électrique
            EnsembleElectrique EnsElecToAdd = new EnsembleElectrique()
                {
                    Libelle = "GOP - EnsElecTest" + MonSuffixe,
                    EnumPeriodiciteNullable = 27
                };

            // Ajout de l'ensemble électrique au service
            ServiceEnsElectrique.Add(EnsElecToAdd);

            // Création de 2 portions intégrités
            PortionIntegrite PIToAdd01 = new PortionIntegrite()
                {
                    Code = "TestPI01",
                    DateMiseEnService = DateTime.Now,
                    Libelle = "GOP - Portion01Test" + MonSuffixe,
                    CleDiametre = 21,
                    CleRevetement = 14,
                    DateMajCommentaire = DateTime.Now
                };
            PortionIntegrite PIToAdd02 = new PortionIntegrite()
                {
                    Code = "TestPI02",
                    DateMiseEnService = DateTime.Now,
                    DateMajCommentaire = DateTime.Now,
                    Libelle = "GOP - Portion02Test" + MonSuffixe,
                    CleDiametre = 21,
                    CleRevetement = 14
                };

            EnsElecToAdd.PortionIntegrite.Add(PIToAdd01);
            EnsElecToAdd.PortionIntegrite.Add(PIToAdd02);

            // Ajout d'un secteur sur chaque portion
            PiSecteurs PISToPortion01 = new PiSecteurs()
                {
                    CleSecteur = 55
                };

            PiSecteurs PISToPortion02 = new PiSecteurs()
                {
                    CleSecteur = 56
                };

            PIToAdd01.PiSecteurs.Add(PISToPortion01);
            PIToAdd02.PiSecteurs.Add(PISToPortion02);

            // Création d'une PP par portions
            Pp PpToPortion01 = new Pp()
                {
                    Libelle = "GOP - PP01Test" + MonSuffixe,
                    CleNiveauSensibilite = 6,
                    CleCategoriePp = 21,
                    PkNullable = 1,
                    CleSecteur = 55,
                    CleCommune = 21488,
                    CleUtilisateur = 1745,
                    DateMajPp = DateTime.Now
                };
            Pp PpToPortion02 = new Pp()
                {
                    Libelle = "GOP - PP02Test" + MonSuffixe,
                    CleNiveauSensibilite = 6,
                    CleCategoriePp = 21,
                    PkNullable = 1,
                    CleSecteur = 56,
                    CleCommune = 21488,
                    CleUtilisateur = 1745,
                    DateMajPp = DateTime.Now
                };

            PIToAdd01.Pps.Add(PpToPortion01);
            PIToAdd02.Pps.Add(PpToPortion02);

            // Création d'un équipement de chaque type pour chaque PP
            EqSoutirage MonSOToPp01 = new EqSoutirage()
                {
                    Libelle = "GOP - Sourtirage01Test" + MonSuffixe,
                    CleRedresseur = 265,
                    CleDeversoir = 240,
                    DateMiseEnServiceRedresseurNullable = DateTime.Now,
                    TensionReglageNullable = 5,
                    IntensiteReglageNullable = 10,
                    DateControleNullable = DateTime.Now,
                    LongueurDeversoirNullable = 10,
                    CleTypeEq = 2,
                    DateMajEquipement = DateTime.Now
                };
            EqLiaisonExterne MaLEToPp01 = new EqLiaisonExterne()
                {
                    Libelle = "GOP - LiaisonExterne01Test" + MonSuffixe,
                    CleNomTiersAss = 185,
                    TypeFluide = "GAZ",
                    CleTypeLiaison = 21,
                    CleTypeEq = 5,
                    DateMajEquipement = DateTime.Now
                };
            EqDrainage MonDRToPp01 = new EqDrainage()
                {
                    Libelle = "GOP - Drainage01Test" + MonSuffixe,
                    CleTypeDrainage = 246,
                    CleTypeEq = 3,
                    IntensiteMaximaleSupporteeNullable = 12,
                    DateMajEquipement = DateTime.Now
                };
            EqPostegaz MonPGToPp01 = new EqPostegaz()
            {
                Libelle = "GOP - PosteGaz01Test" + MonSuffixe,
                TypePoste = "DP",
                CleTypeEq = 8,
                DateMajEquipement = DateTime.Now
            };
            EqFourreauMetallique MonFMToPp01 = new EqFourreauMetallique()
            {
                Libelle = "GOP - FourreauMetallique01Test" + MonSuffixe,
                CleTypeEq = 7,
                DateMajEquipement = DateTime.Now,
                LongueurNullable = 1
            };
            EqAnodeGalvanique MonAGToPp01 = new EqAnodeGalvanique()
            {
                Libelle = "GOP - AnodeGalvanique01Test" + MonSuffixe,
                CleTypeAnode = 233,
                CleTypeEq = 9,
                DateMajEquipement = DateTime.Now
            };
            EqLiaisonInterne MaLIToPp01 = new EqLiaisonInterne()
            {
                Libelle = "GOP - LiaisonInterbe01Test" + MonSuffixe,
                CleTypeLiaison = 21,
                CleTypeEq = 4,
                DateMajEquipement = DateTime.Now
            };
            MaLIToPp01.Pp2 = PpToPortion02;
            EqRaccordIsolant MonRIToPp01 = new EqRaccordIsolant()
            {
                Libelle = "GOP - RaccordIsolant01Test" + MonSuffixe,
                CleTypeRi = 260,
                EnumEtatElect = 11,
                EnumConfigElectNormale = 16,
                CleTypeLiaison = 251,
                CleTypeEq = 11,
                DateMajEquipement = DateTime.Now
            };
            EqPile MaPIToPp01 = new EqPile()
            {
                Libelle = "GOP - Pile01Test" + MonSuffixe,
                CleCaracteristiquePile = 22,
                CleTypeDeversoir = 235,
                CleTypeEq = 12,
                DateMajEquipement = DateTime.Now
            };
            EqTiersCroiseSansLiaison MaTCToPp01 = new EqTiersCroiseSansLiaison()
            {
                Libelle = "GOP - TiersCroisé01Test" + MonSuffixe,
                CleTypeEq = 6,
                DateMajEquipement = DateTime.Now
            };
            EqDispoEcoulementCourantsAlternatifs MonDEToPp01 = new EqDispoEcoulementCourantsAlternatifs()
            {
                Libelle = "GOP - DispEcoulement01Test" + MonSuffixe,
                CapaciteCondensateurNullable = 16000,
                CleTypePriseDeTerre = 257,
                CleTypeEq = 10,
                DateMajEquipement = DateTime.Now
            };

            PpToPortion01.EqEquipement.Add(MonSOToPp01);
            PpToPortion01.EqEquipement.Add(MaLEToPp01);
            PpToPortion01.EqEquipement.Add(MonDRToPp01);
            PpToPortion01.EqEquipement.Add(MonPGToPp01);
            PpToPortion01.EqEquipement.Add(MonFMToPp01);
            PpToPortion01.EqEquipement.Add(MonAGToPp01);
            PpToPortion01.EqEquipement.Add(MaLIToPp01);
            PpToPortion01.EqEquipement.Add(MonRIToPp01);
            PpToPortion01.EqEquipement.Add(MaPIToPp01);
            PpToPortion01.EqEquipement.Add(MaTCToPp01);
            PpToPortion01.EqEquipement.Add(MonDEToPp01);

            EqLiaisonExterne MaLE2ToPp01 = new EqLiaisonExterne()
            {
                Libelle = "GOP - LiaisonExterneDelete01Test" + MonSuffixe,
                CleNomTiersAss = 185,
                TypeFluide = "GAZ",
                CleTypeLiaison = 21,
                CleTypeEq = 5,
                DateMajEquipement = DateTime.Now,
                Supprime = true
            };
            EqDrainage MonDR2ToPp01 = new EqDrainage()
            {
                Libelle = "GOP - DrainageDelete01Test" + MonSuffixe,
                CleTypeDrainage = 246,
                CleTypeEq = 3,
                IntensiteMaximaleSupporteeNullable = 12,
                DateMajEquipement = DateTime.Now,
                Supprime = true
            };

            PpToPortion01.EqEquipement.Add(MaLE2ToPp01);
            PpToPortion01.EqEquipement.Add(MonDR2ToPp01);

            // ---------------------------------------------------------------------

            EqSoutirage MonSOToPp02 = new EqSoutirage()
            {
                Libelle = "GOP - Sourtirage02Test" + MonSuffixe,
                CleRedresseur = 265,
                CleDeversoir = 240,
                DateMiseEnServiceRedresseurNullable = DateTime.Now,
                TensionReglageNullable = 5,
                IntensiteReglageNullable = 10,
                DateControleNullable = DateTime.Now,
                LongueurDeversoirNullable = 10,
                CleTypeEq = 2,
                DateMajEquipement = DateTime.Now
            };
            EqLiaisonExterne MaLEToPp02 = new EqLiaisonExterne()
            {
                Libelle = "GOP - LiaisonExterne02Test" + MonSuffixe,
                CleNomTiersAss = 185,
                TypeFluide = "GAZ",
                CleTypeLiaison = 21,
                CleTypeEq = 5,
                DateMajEquipement = DateTime.Now
            };
            EqDrainage MonDRToPp02 = new EqDrainage()
            {
                Libelle = "GOP - Drainage02Test" + MonSuffixe,
                CleTypeDrainage = 246,
                IntensiteMaximaleSupporteeNullable = 12,
                CleTypeEq = 3,
                DateMajEquipement = DateTime.Now
            };
            EqPostegaz MonPGToPp02 = new EqPostegaz()
            {
                Libelle = "GOP - PosteGaz02Test" + MonSuffixe,
                TypePoste = "DP",
                CleTypeEq = 8,
                DateMajEquipement = DateTime.Now
            };
            EqFourreauMetallique MonFMToPp02 = new EqFourreauMetallique()
            {
                Libelle = "GOP - FourreauMetallique02Test" + MonSuffixe,
                CleTypeEq = 7,
                DateMajEquipement = DateTime.Now,
                LongueurNullable = 1
            };
            EqAnodeGalvanique MonAGToPp02 = new EqAnodeGalvanique()
            {
                Libelle = "GOP - AnodeGalvanique02Test" + MonSuffixe,
                CleTypeAnode = 233,
                CleTypeEq = 9,
                DateMajEquipement = DateTime.Now
            };
            EqLiaisonInterne MaLIToPp02 = new EqLiaisonInterne()
            {
                Libelle = "GOP - LiaisonInterbe02Test" + MonSuffixe,
                CleTypeLiaison = 21,
                CleTypeEq = 4,
                DateMajEquipement = DateTime.Now
            };
            MaLIToPp02.Pp2 = PpToPortion02;

            EqRaccordIsolant MonRIToPp02 = new EqRaccordIsolant()
            {
                Libelle = "GOP - RaccordIsolant02Test" + MonSuffixe,
                CleTypeRi = 260,
                EnumEtatElect = 11,
                EnumConfigElectNormale = 16,
                CleTypeLiaison = 251,
                CleTypeEq = 11,
                DateMajEquipement = DateTime.Now
            };
            EqPile MaPIToPp02 = new EqPile()
            {
                Libelle = "GOP - Pile02Test" + MonSuffixe,
                CleCaracteristiquePile = 22,
                CleTypeDeversoir = 235,
                CleTypeEq = 12,
                DateMajEquipement = DateTime.Now
            };
            EqTiersCroiseSansLiaison MaTCToPp02 = new EqTiersCroiseSansLiaison()
            {
                Libelle = "GOP - TiersCroisé02Test" + MonSuffixe,
                CleTypeEq = 6,
                DateMajEquipement = DateTime.Now
            };
            EqDispoEcoulementCourantsAlternatifs MonDEToPp02 = new EqDispoEcoulementCourantsAlternatifs()
            {
                Libelle = "GOP - DispEcoulement02Test" + MonSuffixe,
                CapaciteCondensateurNullable = 16000,
                CleTypePriseDeTerre = 257,
                CleTypeEq = 10,
                DateMajEquipement = DateTime.Now
            };

            PpToPortion02.EqEquipement.Add(MonSOToPp02);
            PpToPortion02.EqEquipement.Add(MaLEToPp02);
            PpToPortion02.EqEquipement.Add(MonDRToPp02);
            PpToPortion02.EqEquipement.Add(MonPGToPp02);
            PpToPortion02.EqEquipement.Add(MonFMToPp02);
            PpToPortion02.EqEquipement.Add(MonAGToPp02);
            PpToPortion02.EqEquipement.Add(MaLIToPp02);
            PpToPortion02.EqEquipement.Add(MonRIToPp02);
            PpToPortion02.EqEquipement.Add(MaPIToPp02);
            PpToPortion02.EqEquipement.Add(MaTCToPp02);
            PpToPortion02.EqEquipement.Add(MonDEToPp02);

            EqLiaisonExterne MaLE2ToPp02 = new EqLiaisonExterne()
            {
                Libelle = "GOP - LiaisonExterneDelete01Test" + MonSuffixe,
                CleNomTiersAss = 185,
                TypeFluide = "GAZ",
                CleTypeLiaison = 21,
                CleTypeEq = 5,
                DateMajEquipement = DateTime.Now,
                Supprime = true
            };
            EqDrainage MonDR2ToPp02 = new EqDrainage()
            {
                Libelle = "GOP - DrainageDelete02Test" + MonSuffixe,
                CleTypeDrainage = 246,
                CleTypeEq = 3,
                IntensiteMaximaleSupporteeNullable = 12,
                DateMajEquipement = DateTime.Now,
                Supprime = true
            };

            PpToPortion01.EqEquipement.Add(MaLE2ToPp02);
            PpToPortion01.EqEquipement.Add(MonDR2ToPp02);

            // Sauvegarde
            ServiceEnsElectrique.SaveChanges(error =>
            {
                if (error != null)
                {
                    ErrorWindow.CreateNew("Erreur");
                }
                else
                {
                    InfoWindow.CreateNew("Le jeu de test a bien été créé.");
                }

            });
        }
        //private int servicesLoadedCount = 0;
        //private String lockObject = String.Empty;
        private void GenererJeuTestVisite()
        {
            string MonSuffixe = " " + VisiteSuffixe01;

            // Création d'un ensemble électrique
            EnsembleElectrique EnsElecToAdd = new EnsembleElectrique()
            {
                Libelle = "GOP - EnsElecTest" + MonSuffixe,
                EnumPeriodiciteNullable = 27
            };

            // Ajout de l'ensemble électrique au service
            ServiceEnsElectrique.Add(EnsElecToAdd);

            // Création de 2 portions intégrités
            PortionIntegrite PIToAdd01 = new PortionIntegrite()
            {
                Code = "TestPI01",
                DateMiseEnService = DateTime.Now,
                Libelle = "GOP - Portion01Test" + MonSuffixe,
                CleDiametre = 21,
                CleRevetement = 14,
                DateMajCommentaire = DateTime.Now
            };

            EnsElecToAdd.PortionIntegrite.Add(PIToAdd01);

            // Ajout d'un secteur sur chaque portion
            PiSecteurs PISToPortion01 = new PiSecteurs()
            {
                CleSecteur = 55
            };

            PIToAdd01.PiSecteurs.Add(PISToPortion01);

            // Création d'une PP
            Pp PpToPortion01 = new Pp()
            {
                Libelle = "GOP - PP01Test" + MonSuffixe,
                CleNiveauSensibilite = 6,
                CleCategoriePp = 21,
                PkNullable = 1,
                CleSecteur = 55,
                CleCommune = 21488,
                CleUtilisateur = 1745,
                DateMajPp = DateTime.Now,
                CourantsVagabonds = true,
                CourantsAlternatifsInduits = false,
                ElectrodeEnterreeAmovible = false,
                TemoinEnterreAmovible = false,
                TemoinMetalliqueDeSurface = true,
                EnumSurfaceTms = ServiceEnumValeur.Entities.FirstOrDefault(r => r.CodeGroupe == RefEnumValeurCodeGroupeEnum.PP_SURFACE_TMS.ToString()).CleEnumValeur
            };

            PIToAdd01.Pps.Add(PpToPortion01);

            //Création d'un équipement temporaire
            EqEquipementTmp EqTmpToPp01 = new EqEquipementTmp()
            {
                Libelle = "GOP - EqTmp01Test" + MonSuffixe,
                CleTypeEq = 3,
                EstValide = false
            };

            PpToPortion01.EqEquipementTmp.Add(EqTmpToPp01);

            //Création de deux visite et de leur mesures
            Visite VisiteToEqTmp01 = new Visite()
            {
                EnumTypeEval = 1,
                DateImport = new DateTime(2013, 4, 1),
                EstValidee = false,
                RelevePartiel = true,
                Telemesure = false,
                CleUtilisateurMesure = 1745,
                DateVisite = new DateTime(2013, 4, 1),
            };

            Visite VisiteToEqTmp02 = new Visite()
            {
                EnumTypeEval = 1,
                DateImport = new DateTime(2013, 4, 1),
                EstValidee = false,
                RelevePartiel = true,
                Telemesure = false,
                CleUtilisateurMesure = 1745,
                DateVisite = new DateTime(2013, 4, 1),

            };

            MesMesure MesureToVisite01 = new MesMesure()
            {
                CleTypeMesure = 166,
                Valeur = 0
            };

            MesMesure MesureToVisite02 = new MesMesure()
            {
                CleTypeMesure = 83,
                Valeur = 2
            };

            MesMesure MesureToVisite03 = new MesMesure()
            {
                CleTypeMesure = 166,
                Valeur = 0
            };

            MesMesure MesureToVisite04 = new MesMesure()
            {
                CleTypeMesure = 83,
                Valeur = 2
            };

            VisiteToEqTmp01.MesMesure.Add(MesureToVisite01);
            VisiteToEqTmp01.MesMesure.Add(MesureToVisite02);

            VisiteToEqTmp02.MesMesure.Add(MesureToVisite03);
            VisiteToEqTmp02.MesMesure.Add(MesureToVisite04);

            EqTmpToPp01.Visites.Add(VisiteToEqTmp01);
            EqTmpToPp01.Visites.Add(VisiteToEqTmp02);

            // Sauvegarde
            ServiceEnsElectrique.SaveChanges(error =>
            {
                if (error != null)
                {
                    ErrorWindow.CreateNew("Erreur");
                }
                else
                {
                    InfoWindow.CreateNew("Le jeu de test a bien été créé.");
                }

            });
        }
        /// <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;
        }
示例#4
0
文件: Pp.cs 项目: JeanNguon/Projet
        /// <summary>
        /// Retourne la Pp dupliqué
        /// </summary>
        /// <returns></returns>
        public Pp DuplicatePp()
        {
            // Affectation des propriétés à l'élément dupliqué
            Pp PpToReturn = new Pp()
            {
                // Champs communs EqEquipement
                Libelle = this.Libelle,
                Commentaire = this.Commentaire,
                DateMajCommentaire = this.DateMajCommentaire,
                DateMiseEnService = this.DateMiseEnService,
                Supprime = this.Supprime,

                // Champs spécifiques
                ClePpOrigine = this.ClePpOrigine,
                CommentairePositionnement = this.CommentairePositionnement,
                CoordonneeGpsFiabilisee = this.CoordonneeGpsFiabilisee,
                CourantsAlternatifsInduits = this.CourantsAlternatifsInduits,
                CourantsVagabonds = this.CourantsVagabonds,
                DateMajPp = this.DateMajPp,
                DateMiseEnServiceTelemesure = this.DateMiseEnServiceTelemesure,
                ElectrodeEnterreeAmovible = this.ElectrodeEnterreeAmovible,
                PkNullable = this.Pk,
                PositionGpsLat = this.PositionGpsLat,
                PositionGpsLong = this.PositionGpsLong,
                PositionnementPostal = this.PositionnementPostal,
                PpPoste = this.PpPoste,
                PresenceDUneTelemesure = this.PresenceDUneTelemesure,
                TemoinEnterreAmovible = this.TemoinEnterreAmovible,
                TemoinMetalliqueDeSurface = this.TemoinMetalliqueDeSurface,

                // Champs de référence
                CleSecteur = this.CleSecteur,
                CleCommune = this.CleCommune,
                EnumDureeEnrg = this.EnumDureeEnrg,
                EnumPolarisation = this.EnumPolarisation,
                EnumSurfaceTme = this.EnumSurfaceTme,
                EnumSurfaceTms = this.EnumSurfaceTms,
                CleCategoriePp = this.CleCategoriePp,
                ClePortion = this.ClePortion,
                Pp2 = this,
                CleUtilisateur = this.CleUtilisateur,
                CleNiveauSensibilite = this.CleNiveauSensibilite,
            };

            Image tmpImage = this.Images.FirstOrDefault();
            if (tmpImage != null)
            {
                PpToReturn.Images.Add(new Image() { EnumTypeImage = tmpImage.EnumTypeImage, Image1 = tmpImage.Image1 });
            }

            foreach (var np in this.MesNiveauProtection)
            {
                PpToReturn.MesNiveauProtection.Add(np.DupliquerMesNiveauProtection());
            }
            return PpToReturn;
        }
示例#5
0
文件: Pp.cs 项目: JeanNguon/Projet
        public bool AssocieCompEtVisites(Pp PPorigine)
        {
            // On duplique les Compositions liées
            foreach (var Composition in PPorigine.Compositions)
            {
                Composition.ClePp = this.ClePp;
            }

            // On duplique les visites liées
            foreach (var visite in PPorigine.Visites)
            {
                visite.ClePp = this.ClePp;
            }

            // Pour les RI/FM qui ont la Pp courante en Pp secondaire, on les set à null
            foreach (EqRaccordIsolant item in PPorigine.EqRaccordIsolant)
            {
                if (!item.Supprime)
                {
                    item.Pp2 = this;
                    item.ClePp2 = this.ClePp;
                }
            }
            foreach (EqFourreauMetallique item in PPorigine.EqFourreauMetallique)
            {
                if (!item.Supprime)
                {
                    item.Pp2 = this;
                    item.ClePp2 = this.ClePp;
                }
            }

            // Pour les LI qui ont la Pp courante en Pp secondaire,  la Pp2 prend la nouvelle Pp
            foreach (EqLiaisonInterne item in PPorigine.EqLiaisonInterne)
            {
                if (!item.Supprime)
                {
                    //  EqLiaisonInterne itemDeplace = (EqLiaisonInterne)item.DeplacerEq();
                    item.Pp2 = this;
                    item.ClePp2 = this.ClePp;
                }
            }
            return true;
        }
 /// <summary>
 /// Créez un nouvel objet Pp.
 /// </summary>
 /// <param name="clePp">Valeur initiale de la propriété ClePp.</param>
 /// <param name="cleCommune">Valeur initiale de la propriété CleCommune.</param>
 /// <param name="cleNiveauSensibilite">Valeur initiale de la propriété CleNiveauSensibilite.</param>
 /// <param name="cleUtilisateur">Valeur initiale de la propriété CleUtilisateur.</param>
 /// <param name="cleSecteur">Valeur initiale de la propriété CleSecteur.</param>
 /// <param name="clePortion">Valeur initiale de la propriété ClePortion.</param>
 /// <param name="libelle">Valeur initiale de la propriété Libelle.</param>
 /// <param name="pk">Valeur initiale de la propriété Pk.</param>
 /// <param name="courantsVagabonds">Valeur initiale de la propriété CourantsVagabonds.</param>
 /// <param name="courantsAlternatifsInduits">Valeur initiale de la propriété CourantsAlternatifsInduits.</param>
 /// <param name="electrodeEnterreeAmovible">Valeur initiale de la propriété ElectrodeEnterreeAmovible.</param>
 /// <param name="temoinEnterreAmovible">Valeur initiale de la propriété TemoinEnterreAmovible.</param>
 /// <param name="temoinMetalliqueDeSurface">Valeur initiale de la propriété TemoinMetalliqueDeSurface.</param>
 /// <param name="coordonneeGpsFiabilisee">Valeur initiale de la propriété CoordonneeGpsFiabilisee.</param>
 /// <param name="presenceDUneTelemesure">Valeur initiale de la propriété PresenceDUneTelemesure.</param>
 /// <param name="ppPoste">Valeur initiale de la propriété PpPoste.</param>
 /// <param name="supprime">Valeur initiale de la propriété Supprime.</param>
 /// <param name="dateMajPp">Valeur initiale de la propriété DateMajPp.</param>
 /// <param name="ddeDeverrouillageCoordGps">Valeur initiale de la propriété DdeDeverrouillageCoordGps.</param>
 public static Pp CreatePp(global::System.Int32 clePp, global::System.Int32 cleCommune, global::System.Int32 cleNiveauSensibilite, global::System.Int32 cleUtilisateur, global::System.Int32 cleSecteur, global::System.Int32 clePortion, global::System.String libelle, global::System.Decimal pk, global::System.Boolean courantsVagabonds, global::System.Boolean courantsAlternatifsInduits, global::System.Boolean electrodeEnterreeAmovible, global::System.Boolean temoinEnterreAmovible, global::System.Boolean temoinMetalliqueDeSurface, global::System.Boolean coordonneeGpsFiabilisee, global::System.Boolean presenceDUneTelemesure, global::System.Boolean ppPoste, global::System.Boolean supprime, global::System.DateTime dateMajPp, global::System.Boolean ddeDeverrouillageCoordGps)
 {
     Pp pp = new Pp();
     pp.ClePp = clePp;
     pp.CleCommune = cleCommune;
     pp.CleNiveauSensibilite = cleNiveauSensibilite;
     pp.CleUtilisateur = cleUtilisateur;
     pp.CleSecteur = cleSecteur;
     pp.ClePortion = clePortion;
     pp.Libelle = libelle;
     pp.Pk = pk;
     pp.CourantsVagabonds = courantsVagabonds;
     pp.CourantsAlternatifsInduits = courantsAlternatifsInduits;
     pp.ElectrodeEnterreeAmovible = electrodeEnterreeAmovible;
     pp.TemoinEnterreAmovible = temoinEnterreAmovible;
     pp.TemoinMetalliqueDeSurface = temoinMetalliqueDeSurface;
     pp.CoordonneeGpsFiabilisee = coordonneeGpsFiabilisee;
     pp.PresenceDUneTelemesure = presenceDUneTelemesure;
     pp.PpPoste = ppPoste;
     pp.Supprime = supprime;
     pp.DateMajPp = dateMajPp;
     pp.DdeDeverrouillageCoordGps = ddeDeverrouillageCoordGps;
     return pp;
 }
 /// <summary>
 /// Méthode déconseillée pour ajouter un nouvel objet à l'EntitySet Pps. Utilisez la méthode .Add de la propriété ObjectSet&lt;T&gt; associée à la place.
 /// </summary>
 public void AddToPps(Pp pp)
 {
     base.AddObject("Pps", pp);
 }