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; } }
//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éé."); } }); }
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; } }
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; } }
/// <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; }
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> /// 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; }
/// <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; }
/// <summary> /// Méthode déconseillée pour ajouter un nouvel objet à l'EntitySet Visites. Utilisez la méthode .Add de la propriété ObjectSet<T> associée à la place. /// </summary> public void AddToVisites(Visite visite) { base.AddObject("Visites", visite); }