コード例 #1
0
        private Visite TryCreateVisite(VisiteImport monImport, int cleUtilisateur, List<Pp> pps, List<EqEquipement> eqs)
        {
            try
            {
                Visite maVisite = new Visite();

                if (monImport.TypeEquipement == "PP" && !monImport.IsPPModifed)
                {
                    Pp newpp = pps.FirstOrDefault<Pp>(pp => pp.ClePp == monImport.CleEquipement);
                    newpp.Visites.Add(maVisite);
                }
                else if (!monImport.IsEquipementTempo && monImport.TypeEquipement != "PP")
                {
                    EqEquipement neweq = eqs.FirstOrDefault<EqEquipement>(eq => eq.CleEquipement == monImport.CleEquipement);
                    neweq.Visites.Add(maVisite);
                }

                // champs obligatoire
                if (monImport.Utilisateur != null)
                {
                    maVisite.UsrUtilisateur2 = monImport.Utilisateur;
                }
                else
                {
                    maVisite.CleUtilisateurMesure = monImport.CleUtilisateur;
                }

                maVisite.EstValidee = monImport.EstValide;
                maVisite.Telemesure = monImport.IsTelemesure;

                // Dates
                maVisite.DateVisite = monImport.DateVisite;
                maVisite.DateImport = monImport.DateImport;
                maVisite.DateSaisie = monImport.DateSaisie;

                // Spec import
                maVisite.CleUtilisateurImport = cleUtilisateur;
                maVisite.CleUtilisateurCreation = monImport.CleUtilisateur;
                maVisite.Commentaire = monImport.CommentaireVisite;

                var firstOrDefault = this.ObjectContext.RefEnumValeur.FirstOrDefault(c => c.CodeGroupe == "TYPE_EVAL" && c.LibelleCourt == "EG");
                if (firstOrDefault != null)
                {
                    maVisite.EnumTypeEval = firstOrDefault.CleEnumValeur;
                }
                maVisite.EnumTypeEvalComposition = monImport.EnumTypeEvalComposition;

                return maVisite;
            }
            catch (Exception ex)
            {
                monImport.AddOnError(string.Format("Erreur lors de l'ajout de la visite : {0}", ex.Message));
                return null;
            }
        }
コード例 #2
0
        //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éé.");
                }

            });
        }
コード例 #3
0
        private bool TryCreateAlertes(VisiteImport monImport, Visite maVisite, List<RefEnumValeur> refEnumValeurs)
        {
            try
            {
                // On sélectionne uniquement les mesures qui sont en dépassement de seuil
                foreach (MesMesure mamesure in maVisite.MesMesure.Where(a => a.IsDepassementSeuil))
                {
                    // création de l'alerte de type seuil
                    mamesure.Alertes.Add(new Alerte()
                    {
                        RefEnumValeur = refEnumValeurs.FirstOrDefault(c => c.CodeGroupe == "ENUM_TYPE_ALERTE" && c.Valeur == "S"),
                        Date = monImport.DateSaisie,
                        Supprime = false
                    });

                    maVisite.Alertes.Add(mamesure.Alertes.FirstOrDefault());
                }

                return true;
            }
            catch (Exception ex)
            {
                monImport.AddOnError(string.Format("Erreur lors de la création des alertes : {0}", ex.Message));
                return false;
            }
        }
コード例 #4
0
 private bool TryCreateMesures(VisiteImport monImport, Visite maVisite, List<RefEnumValeur> refEnumValeurs)
 {
     try
     {
         if (monImport.TypeEquipement == "PP")
         {
             // Vérification que la Pp visitée dispose d'un temoin enterré amovible
             if (maVisite.ClePp.HasValue && maVisite.Pp != null && maVisite.Pp.PresenceDUneTelemesure)
             {
                 if (!TryCreateListMesures(monImport, maVisite, refEnumValeurs))
                 {
                     return false;
                 }
             }
             else
             {
                 monImport.AddOnError("Erreur lors de la création des mesures : type de PP non pris en charge par la télémesure");
                 return false;
             }
         }
         else
         {
             if (maVisite.CleEquipement.HasValue && maVisite.EqEquipement != null)
             {
                 var prop = maVisite.EqEquipement.GetType().GetProperty("PresenceTelemesure");
                 if (prop != null && (bool)prop.GetValue(maVisite.EqEquipement, null))
                 {
                     if (!TryCreateListMesures(monImport, maVisite, refEnumValeurs))
                     {
                         return false;
                     }
                 }
                 else
                 {
                     monImport.AddOnError("Erreur lors de la création des mesures : équipement non télémesuré");
                     return false;
                 }
             }
         }
         maVisite.RelevePartiel = true;
         return true;
     }
     catch (Exception ex)
     {
         monImport.AddOnError(string.Format("Erreur lors de la création des mesures : {0}", ex.Message));
         return false;
     }
 }
コード例 #5
0
        /// <summary>
        /// Exporte l'objet Visite passé en paramètre en un XmlElement
        /// </summary>
        /// <param name="vi">Objet à transformer en XML</param>
        /// <param name="XmlDoc">XMLDocument racine</param>
        /// <returns></returns>
        private XmlElement getVisiteToXML(Visite Vi, XmlDocument XmlDoc)
        {
            XmlElement elemVi = XmlDoc.CreateElement("Visite");

            XmlElement elemVidetails = XmlDoc.CreateElement("CleVisite");
            elemVidetails.InnerText = Vi.CleVisite.ToString();
            elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("CleUtilisateurCreation");
            //elemVidetails.InnerText = Vi.CleUtilisateurCreation.HasValue ? Vi.CleUtilisateurCreation.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("CleUtilisateurImport");
            //elemVidetails.InnerText = Vi.CleUtilisateurImport.HasValue ? Vi.CleUtilisateurImport.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("CleUtilisateurMesure");
            //elemVidetails.InnerText = Vi.CleUtilisateurMesure.HasValue ? Vi.CleUtilisateurMesure.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("CleUtilisateurValidation");
            //elemVidetails.InnerText = Vi.CleUtilisateurValidation.HasValue ? Vi.CleUtilisateurValidation.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("EnumTypeEval");
            //elemVidetails.InnerText = Vi.EnumTypeEval != null ? Vi.EnumTypeEval.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("ClePP");
            //elemVidetails.InnerText = Vi.ClePp.HasValue ? Vi.ClePp.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("CleEquipement");
            //elemVidetails.InnerText = Vi.CleEquipement.HasValue ? Vi.CleEquipement.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("CleAnalyse");
            //elemVidetails.InnerText = Vi.CleAnalyse.HasValue ? Vi.CleAnalyse.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            elemVidetails = XmlDoc.CreateElement("DateVisite");
            elemVidetails.InnerText = Vi.DateVisite.HasValue ? Vi.DateVisite.Value.ToString() : string.Empty;
            elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("DateSaisie");
            //elemVidetails.InnerText = Vi.DateSaisie.HasValue ? Vi.DateSaisie.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("DateImport");
            //elemVidetails.InnerText = Vi.DateImport.HasValue ? Vi.DateImport.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("DateValidation");
            //elemVidetails.InnerText = Vi.DateValidation.HasValue ? Vi.DateValidation.Value.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("EstValidee");
            //elemVidetails.InnerText = Vi.EstValidee != null ? Vi.EstValidee.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("Commentaire");
            //elemVidetails.InnerText = Vi.Commentaire != null ? Vi.Commentaire.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            //elemVidetails = XmlDoc.CreateElement("RelevePartiel");
            //elemVidetails.InnerText = Vi.RelevePartiel != null ? Vi.RelevePartiel.ToString() : string.Empty;
            //elemVi.AppendChild(elemVidetails);

            elemVidetails = XmlDoc.CreateElement("MesMesures");

            // récupération uniquement des mesures de type moyen ou autre
            IEnumerable<MesMesure> mes = Vi.MesMesure.Where(m => m.MesTypeMesure.RefEnumValeur.Valeur == "1" || m.MesTypeMesure.RefEnumValeur.Valeur == "4");
            foreach (MesMesure me in mes)
            {
                elemVidetails.AppendChild(getMesMesureToXML(me, XmlDoc));
            }
            elemVi.AppendChild(elemVidetails);

            return elemVi;
        }
コード例 #6
0
        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);
                }
            }
        }
コード例 #7
0
 /// <summary>
 /// MANTIS 10882 FSI 23/06/2014 : Import télémesure V3
 /// Recherche les Enums d'attribution de CleTypeMesure en base et attribution de mesures en fonction 
 /// </summary>
 /// <param name="monImport">ImportVisite en cours d'import</param>
 /// <param name="maVisite">Visite en cours de création</param>
 /// <param name="refEnumValeurs">RefEnumValeurs chargés depuis la base</param>
 /// <returns>Si une erreur apparaît, arrêt du traitement et renvoit false sinon true</returns>
 private static bool TryCreateListMesures(VisiteImport monImport, Visite maVisite, List<RefEnumValeur> refEnumValeurs)
 {
     foreach (RefEnumValeur typeMesure in refEnumValeurs.Where(c => c.CodeGroupe == "IMPORT_TELEMESURE_TYPEMESURE" && c.Libelle == monImport.TypeEquipement))
     {
         if (!String.IsNullOrEmpty(monImport.Row[typeMesure.NumeroOrdre - 1]))
         {
             decimal valeur;
             if (decimal.TryParse(monImport.Row[typeMesure.NumeroOrdre - 1], out valeur))
             {
                 int cleTypeMesure;
                 if (!String.IsNullOrEmpty(typeMesure.Valeur)
                     && int.TryParse(typeMesure.Valeur, out cleTypeMesure))
                 {
                     maVisite.MesMesure.Add(new MesMesure()
                     {
                         Valeur = valeur,
                         CleTypeMesure = cleTypeMesure
                     });
                 }
             }
             else
             {
                 monImport.AddOnError("Erreur lors de la création des mesures : valeur de la mesure invalide");
                 return false;
             }
         }
     }
     return true;
 }
コード例 #8
0
 /// <summary>
 /// Créez un nouvel objet Visite.
 /// </summary>
 /// <param name="cleVisite">Valeur initiale de la propriété CleVisite.</param>
 /// <param name="enumTypeEval">Valeur initiale de la propriété EnumTypeEval.</param>
 /// <param name="estValidee">Valeur initiale de la propriété EstValidee.</param>
 /// <param name="relevePartiel">Valeur initiale de la propriété RelevePartiel.</param>
 /// <param name="telemesure">Valeur initiale de la propriété Telemesure.</param>
 /// <param name="enumTypeEvalComposition">Valeur initiale de la propriété EnumTypeEvalComposition.</param>
 public static Visite CreateVisite(global::System.Int32 cleVisite, global::System.Int32 enumTypeEval, global::System.Boolean estValidee, global::System.Boolean relevePartiel, global::System.Boolean telemesure, global::System.Int32 enumTypeEvalComposition)
 {
     Visite visite = new Visite();
     visite.CleVisite = cleVisite;
     visite.EnumTypeEval = enumTypeEval;
     visite.EstValidee = estValidee;
     visite.RelevePartiel = relevePartiel;
     visite.Telemesure = telemesure;
     visite.EnumTypeEvalComposition = enumTypeEvalComposition;
     return visite;
 }
コード例 #9
0
 /// <summary>
 /// Méthode déconseillée pour ajouter un nouvel objet à l'EntitySet Visites. Utilisez la méthode .Add de la propriété ObjectSet&lt;T&gt; associée à la place.
 /// </summary>
 public void AddToVisites(Visite visite)
 {
     base.AddObject("Visites", visite);
 }