//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 MesMesure passé en paramètre en un XmlElement
        /// </summary>
        /// <param name="me">Objet à transformer en XML</param>
        /// <param name="XmlDoc">XMLDocument racine</param>
        /// <returns></returns>
        private XmlElement getMesMesureToXML(MesMesure me, XmlDocument XmlDoc)
        {
            XmlElement elemMes = XmlDoc.CreateElement("MesMesure");

            XmlElement elemMesdetails = XmlDoc.CreateElement("ModeleMesureLib");
            elemMesdetails.InnerText = me.MesTypeMesure.MesModeleMesure != null ? me.MesTypeMesure.MesModeleMesure.LibGenerique : string.Empty;
            elemMes.AppendChild(elemMesdetails);

            //elemMesdetails = XmlDoc.CreateElement("CleMesure");
            //elemMesdetails.InnerText = me.CleMesure != null ? me.CleMesure.ToString() : string.Empty;
            //elemMes.AppendChild(elemMesdetails);

            //elemMesdetails = XmlDoc.CreateElement("CleTypeMesure");
            //elemMesdetails.InnerText = me.CleTypeMesure != null ? me.CleTypeMesure.ToString() : string.Empty;
            //elemMes.AppendChild(elemMesdetails);

            //elemMesdetails = XmlDoc.CreateElement("CleAlerteSeuil");
            //elemMesdetails.InnerText = me.CleAlerteSeuil != null ? me.CleAlerteSeuil.ToString() : string.Empty;
            //elemMes.AppendChild(elemMesdetails);

            //elemMesdetails = XmlDoc.CreateElement("CleVisite");
            //elemMesdetails.InnerText = me.CleVisite != null ? me.CleVisite.ToString() : string.Empty;
            //elemMes.AppendChild(elemMesdetails);

            elemMesdetails = XmlDoc.CreateElement("MesureComplementaire");
            elemMesdetails.InnerText = me.MesTypeMesure.MesureComplementaire.ToString();
            elemMes.AppendChild(elemMesdetails);

            elemMesdetails = XmlDoc.CreateElement("Valeur");
            elemMesdetails.InnerText = me.Valeur != null ? me.Valeur.ToString() : string.Empty;
            elemMes.AppendChild(elemMesdetails);

            return elemMes;
        }
 /// <summary>
 /// Créez un nouvel objet MesMesure.
 /// </summary>
 /// <param name="cleMesure">Valeur initiale de la propriété CleMesure.</param>
 /// <param name="cleTypeMesure">Valeur initiale de la propriété CleTypeMesure.</param>
 /// <param name="cleVisite">Valeur initiale de la propriété CleVisite.</param>
 public static MesMesure CreateMesMesure(global::System.Int32 cleMesure, global::System.Int32 cleTypeMesure, global::System.Int32 cleVisite)
 {
     MesMesure mesMesure = new MesMesure();
     mesMesure.CleMesure = cleMesure;
     mesMesure.CleTypeMesure = cleTypeMesure;
     mesMesure.CleVisite = cleVisite;
     return mesMesure;
 }
        private void CreateVisitesForPpJumelees(Visite maVisite)
        {
            if (maVisite.ClePp.HasValue)
            {
                //Récupération des Pp qui sont jumelees à cette Pp
                List<int> MesClesPpJumelees = maVisite.ClePp.HasValue ? maVisite.Pp.PpJumelee.Select(pj => pj.PpClePp).Union(maVisite.Pp.PpJumelee1.Select(pj => pj.ClePp)).ToList()
                    : maVisite.PpTmp.Pp.PpJumelee.Select(pj => pj.PpClePp).Union(maVisite.PpTmp.Pp.PpJumelee1.Select(pj => pj.ClePp)).ToList();

                foreach (int clePpJumelee in MesClesPpJumelees)
                {
                    //Création de ma copie de Visite
                    Visite visiteCopy = this.ObjectContext.Visites.CreateObject();

                    //{
                    visiteCopy.ClePp = clePpJumelee;
                    visiteCopy.CleUtilisateurValidation = maVisite.CleUtilisateurValidation;
                    visiteCopy.CleUtilisateurCreation = maVisite.CleUtilisateurCreation;
                    visiteCopy.CleUtilisateurMesure = maVisite.CleUtilisateurMesure;
                    visiteCopy.DateValidation = maVisite.DateValidation;
                    visiteCopy.DateSaisie = maVisite.DateSaisie;
                    visiteCopy.DateVisite = maVisite.DateVisite;
                    visiteCopy.RelevePartiel = maVisite.RelevePartiel;
                    visiteCopy.EnumTypeEval = maVisite.EnumTypeEval;
                    visiteCopy.EnumTypeEvalComposition = maVisite.EnumTypeEvalComposition;
                    visiteCopy.Commentaire = maVisite.Commentaire;
                    visiteCopy.EstValidee = maVisite.EstValidee;
                    visiteCopy.EnumConformiteTournee = maVisite.EnumConformiteTournee;
                    //};

                    //Copie des Mesures
                    foreach (MesMesure mesureOrigin in maVisite.MesMesure)
                    {
                        //Création de ma copie de Mesure
                        MesMesure mesureCopy = new MesMesure()
                        {
                            Valeur = mesureOrigin.Valeur,
                            CleTypeMesure = mesureOrigin.CleTypeMesure
                        };

                        if (mesureOrigin.Alertes != null && mesureOrigin.Alertes.Any())
                        {
                            Alerte alerte = new Alerte()
                            {
                                Supprime = false,
                                Date = mesureOrigin.Alertes.FirstOrDefault().Date,
                                EnumTypeAlerte = mesureOrigin.Alertes.FirstOrDefault().EnumTypeAlerte
                            };

                            visiteCopy.Alertes.Add(alerte);
                            mesureCopy.Alertes.Add(alerte);
                        }

                        visiteCopy.MesMesure.Add(mesureCopy);
                    }

                    this.ObjectContext.Visites.AddObject(visiteCopy);
                }
            }
        }
 /// <summary>
 /// Méthode déconseillée pour ajouter un nouvel objet à l'EntitySet MesMesure. Utilisez la méthode .Add de la propriété ObjectSet&lt;T&gt; associée à la place.
 /// </summary>
 public void AddToMesMesure(MesMesure mesMesure)
 {
     base.AddObject("MesMesure", mesMesure);
 }