private void CControlePourInventaire_Load(object sender, EventArgs e) { CListeEntitesDeMemoryDb <CChampCustom> lstChamps = new CListeEntitesDeMemoryDb <CChampCustom>(CTimosInventoryDb.GetTimosDatas()); lstChamps.Filtre = CChampCustom.GetFiltreChampsForRole(CReleveEquipement.c_roleChampCustom); if (lstChamps.Count() == 0) { m_panelChampsCustom.Visible = false; } else { m_panelChampsCustom.Visible = true; foreach (CChampCustom champOrg in lstChamps) { CChampCustom champ = new CChampCustom(CTimosInventoryDb.GetInventaireDatas()); if (!champ.ReadIfExist(champOrg.Id)) { champ = champOrg.GetChampInMemoryDb(CTimosInventoryDb.GetInventaireDatas()); } if (champ != null) { CControleForCustomFieldReleve ctrl = new CControleForCustomFieldReleve(); m_panelChampsCustom.Controls.Add(ctrl); ctrl.Dock = DockStyle.Left; ctrl.Init(champ); ctrl.OnValueChanged += new EventHandler(ctrlCustom_OnValueChanged); } } } Height = m_panelTop.Height + m_lblLigneBas.Height + (m_panelChampsCustom.Controls.Count > 0 ? m_panelChampsCustom.Height : 0); }
private int CompareAdresse(string strAdresse1, string strAdresse2, int nNiveau, bool bEgalSiVide) { CListeEntitesDeMemoryDb <CRelationSystemeCoordonnees_FormatNumerotation> lstFormats = RelationFormatsNumerotation; if (nNiveau >= lstFormats.Count()) { return(0); } CRelationSystemeCoordonnees_FormatNumerotation relFormat = (CRelationSystemeCoordonnees_FormatNumerotation)lstFormats.ElementAt(nNiveau); if (strAdresse2 == "" || strAdresse1 == "") { if (bEgalSiVide) { return(0); } else { return(strAdresse1.CompareTo(strAdresse2)); } } int nPos1 = strAdresse1.IndexOf(c_separateurNumerotations); int nPos2 = strAdresse2.IndexOf(c_separateurNumerotations); string strDebut1, strFin1; string strDebut2, strFin2; if (nPos1 > 0) { strDebut1 = strAdresse1.Substring(0, nPos1); strFin1 = strAdresse1.Substring(nPos1 + 1); } else { strDebut1 = strAdresse1; strFin1 = ""; } if (nPos2 > 0) { strDebut2 = strAdresse2.Substring(0, nPos2); strFin2 = strAdresse2.Substring(nPos2 + 1); } else { strDebut2 = strAdresse2; strFin2 = ""; } int nResult = relFormat.Compare(strDebut1, strDebut2); if (nResult != 0) { return(nResult); } return(CompareAdresse(strFin1, strFin2, nNiveau + 1, bEgalSiVide)); }
//-------------------------------------------------------------- private void CFormCreerEquipement_Load(object sender, EventArgs e) { m_lblSite.Text = m_releveEqpt.ReleveSite.Site.Libelle; if (m_releveEqpt.ReleveEquipementParent != null) { m_panelEqptParent.Visible = true; m_lblEqptParent.Text = m_releveEqpt.ReleveEquipementParent.NumeroSerie + " " + m_releveEqpt.ReleveEquipementParent.TypeEquipement.Libelle + " (" + m_releveEqpt.ReleveEquipementParent.CoordonneeComplete + ")"; } else { m_panelEqptParent.Visible = false; } m_txtSerial.Text = m_releveEqpt.NumeroSerie; m_selectTypeEquipement.Init(m_releveEqpt, true); m_panelCoordonnee.Init(m_releveEqpt, true); CListeEntitesDeMemoryDb <CChampCustom> lstChamps = new CListeEntitesDeMemoryDb <CChampCustom>(CTimosInventoryDb.GetTimosDatas()); lstChamps.Filtre = CChampCustom.GetFiltreChampsForRole(CReleveEquipement.c_roleChampCustom); if (lstChamps.Count() == 0) { m_panelChampsCustom.Visible = false; } else { m_panelChampsCustom.Visible = true; foreach (CChampCustom champOrg in lstChamps) { CChampCustom champ = new CChampCustom(CTimosInventoryDb.GetInventaireDatas()); if (!champ.ReadIfExist(champOrg.Id)) { champ = champOrg.GetChampInMemoryDb(CTimosInventoryDb.GetInventaireDatas()); } if (champ != null) { CControleForCustomFieldReleve ctrl = new CControleForCustomFieldReleve(); m_panelChampsCustom.Controls.Add(ctrl); ctrl.Dock = DockStyle.Left; ctrl.Init(champ); } } } foreach (Control ctrl in m_panelChampsCustom.Controls) { CControleForCustomFieldReleve c = ctrl as CControleForCustomFieldReleve; if (c != null) { c.InitChamps(m_releveEqpt); } } }
//------------------------------------------------------------------------------------- private HashSet <string> UpdateNombreAlarmesNonAcquittees() { HashSet <string> tableIdAlarmes = new HashSet <string>(); int nHashCode = 0; // Affiche le nombre d'Alarmes non aqcuittées if (m_dataBase != null) { CListeEntitesDeMemoryDb <CLocalTypeAlarme> listeTypesAlarme = new CListeEntitesDeMemoryDb <CLocalTypeAlarme>(m_dataBase); listeTypesAlarme.Filtre = new CFiltreMemoryDb( CLocalTypeAlarme.c_champAAcquitter + " = @1", true); List <string> lstIdString = new List <string>(); foreach (CLocalTypeAlarme typeAlarme in listeTypesAlarme) { lstIdString.Add(typeAlarme.Id); } string strListeIdTypes = string.Join(",", lstIdString.ToArray()); CListeEntitesDeMemoryDb <CLocalAlarme> listeAlarmes = new CListeEntitesDeMemoryDb <CLocalAlarme>(m_dataBase); CFiltreMemoryDb filtre = new CFiltreMemoryDb( CLocalAlarme.c_champIdParent + " is null and " + CLocalAlarme.c_champDateFin + " is null and " + CLocalAlarme.c_champDateAcquittement + " is null and " + CLocalAlarme.c_champIdMasquageHerite + " is null"); if (strListeIdTypes != "") { filtre = CFiltreMemoryDb.GetAndFiltre(filtre, new CFiltreMemoryDb( CLocalTypeAlarme.c_champId + " in(" + strListeIdTypes + ")")); } else { filtre = new CFiltreMemoryDBImpossible(); } listeAlarmes.Filtre = filtre; listeAlarmes.Sort = CLocalAlarme.c_champId; int nCompteur = listeAlarmes.Count(); m_lblCompteurNouvellesAlarmes.Text = nCompteur.ToString(); // Calcul du Hash Code StringBuilder sb = new StringBuilder(); foreach (CLocalAlarme alarme in listeAlarmes) { tableIdAlarmes.Add(alarme.Id); } } return(tableIdAlarmes); }
//---------------------------------------------------------------- private static void UpdateOptimizedDb() { CDataHotel hotel = null; if (m_database != null) { CListeEntitesDeMemoryDb <CDataHotel> lst = new CListeEntitesDeMemoryDb <CDataHotel>(m_database); if (lst.Count() > 0) { hotel = lst.ElementAt(0); } } m_optimizedDb = new CDataRoomOptimizedDataBase(hotel); }
//---------------------------------------------- public void CalculeEtatFromChilds() { CListeEntitesDeMemoryDb <CLocalAlarme> lstFils = Childs; if (TypeAlarme == null || lstFils.Count() == 0) { return; } switch (TypeAlarme.ModeCalculEtat) { case EModeCalculEtatParent.AllChildsClosed: bool bAllClose = true; foreach (CLocalAlarme alrm in lstFils) { if (alrm.Etat.Code == EEtatAlarme.Open) { bAllClose = false; break; } } if (bAllClose) { EtatCode = EEtatAlarme.Close; } break; case EModeCalculEtatParent.OneChildClosed: foreach (CLocalAlarme alrm in lstFils) { if (alrm.Etat.Code == EEtatAlarme.Close) { EtatCode = EEtatAlarme.Close; break; } } break; case EModeCalculEtatParent.Manual: break; default: break; } }
/// <summary> /// Ajoute à la coordonnée nNbToAdd et retourne la nouvelle /// coordonnée (string dans le data), ou une erreur si ce n'est pas possible /// </summary> /// <param name="strCoordonnee"></param> /// <param name="nNbToAdd"></param> /// <returns></returns> public CResultAErreur AjouteDansNiveau(string strCoordonnee, int nNbToAdd) { CResultAErreur result = CResultAErreur.True; string[] strNiveaux = strCoordonnee.Split(c_separateurNumerotations); int nNiveauFinal = strNiveaux.Length - 1; //récupère le la système de numérotation de ce niveau CListeEntitesDeMemoryDb <CRelationSystemeCoordonnees_FormatNumerotation> listeNiveaux = RelationFormatsNumerotation; listeNiveaux.Sort = CRelationSystemeCoordonnees_FormatNumerotation.c_champPosition; if (nNiveauFinal > listeNiveaux.Count()) { //plus de paramétrage pour ce niveau result.EmpileErreur(I.T("The coordinate has too many levels for the defined system|253")); return(result); } //Ajoute le nombre au dernier niveau CRelationSystemeCoordonnees_FormatNumerotation rel = (CRelationSystemeCoordonnees_FormatNumerotation)listeNiveaux.ElementAt(nNiveauFinal); result = rel.Ajoute(strNiveaux[strNiveaux.Length - 1], nNbToAdd); if (!result) { return(result); } //Reconstruit la coordonnée string strCoord = ""; for (int nNiveau = 0; nNiveau < nNiveauFinal; nNiveau++) { strCoord += strNiveaux[nNiveau] + c_separateurNumerotations; } strCoord += (string)result.Data; result.Data = strCoord; return(result); }
//-------------------------------------------------------- public static CDataRoom GetRoomFor(string strIdEntite, CMemoryDb db) { string strRoomId = ""; if (m_cacheDispatch.TryGetValue(strIdEntite, out strRoomId)) { CDataRoom room = new CDataRoom(db); if (room.ReadIfExist(strRoomId)) { return(room); } } CListeEntitesDeMemoryDb <CDataDispatch> lstDispatch = new CListeEntitesDeMemoryDb <CDataDispatch>(db); lstDispatch.Filtre = new CFiltreMemoryDb(CDataDispatch.c_champStartEntityId + " like @1", strIdEntite[0] + "%"); lstDispatch.Sort = CDataDispatch.c_champStartEntityId + " desc"; CDataRoom roomDest = null; foreach (CDataDispatch dd in lstDispatch) { if (strIdEntite.StartsWith(dd.StartEntityId)) { roomDest = dd.DestinationRoom; } ; } if (roomDest == null) { //Cherche le dispatch vide lstDispatch.Filtre = new CFiltreMemoryDb(CDataDispatch.c_champStartEntityId + "=@1", ""); if (lstDispatch.Count() > 0) { roomDest = lstDispatch.ElementAt(0).DestinationRoom; } } if (roomDest != null) { m_cacheDispatch[strIdEntite] = roomDest.Id; } return(roomDest); }
/// <summary> /// Analyse une coordonnée donnée avec une unité pour voir si le dernier niveau<br/> /// de la coordonnée correspond bien avec fournie /// </summary> /// <param name="strCoordonnee">coordonnée à vérifier</param> /// <param name="unite">Unite</param> /// <returns>Retourne vrai ou faux avec des erreurs en cas de problème syntaxique ou autre sur la coordonnée</returns> public CResultAErreur VerifieUnite(string strCoordonnee, CUniteCoordonnee unite) { CResultAErreur result = CResultAErreur.True; string[] strNiveaux = strCoordonnee.Split(c_separateurNumerotations); int nNiveauFinal = strNiveaux.Length - 1; //récupère le la système de numérotation de ce niveau CListeEntitesDeMemoryDb <CRelationSystemeCoordonnees_FormatNumerotation> listeNiveaux = RelationFormatsNumerotation; listeNiveaux.Sort = CRelationSystemeCoordonnees_FormatNumerotation.c_champPosition; if (nNiveauFinal > listeNiveaux.Count()) { //plus de paramétrage pour ce niveau result.EmpileErreur(I.T("The coordinate has too many levels for the defined system|253")); return(result); } CRelationSystemeCoordonnees_FormatNumerotation rel = (CRelationSystemeCoordonnees_FormatNumerotation)listeNiveaux.ElementAt(nNiveauFinal); return(rel.VerifieUnite(unite)); }
private void CalcSerialError() { //Vérifie s'il n'y a pas de relevé avec le même numéro de série CItemInventaire iv = CurrentItem as CItemInventaire; if (iv != null && m_txtSerial.Text.Trim() != "") { CListeEntitesDeMemoryDb <CReleveEquipement> lstRels = new CListeEntitesDeMemoryDb <CReleveEquipement>(iv.ReleveEquipement.Database); lstRels.Filtre = new CFiltreMemoryDb( CEquipement.c_champSerial + "=@1 and " + CReleveSite.c_champId + "=@2 and " + CTypeEquipement.c_champId + "=@3", m_txtSerial.Text.Trim(), iv.ReleveEquipement.ReleveSite.Id, iv.ReleveEquipement.IdTypeEquipement); if (lstRels.Count() > 1) { StringBuilder bl = new StringBuilder(); bl.Append(I.T("Multiple use of serial|20035")); bl.Append("( "); foreach (CReleveEquipement rel in lstRels) { bl.Append(rel.CoordonneeComplete); bl.Append(','); } bl.Remove(bl.Length - 1, 1); bl.Append(")"); m_error.SetError(m_txtSerial, bl.ToString()); } else { m_error.SetError(m_txtSerial, ""); } } else { m_error.SetError(m_txtSerial, ""); } }
private void button1_Click(object sender, EventArgs e) { CListeEntitesDeMemoryDb <CReleveSite> lstReleves = new CListeEntitesDeMemoryDb <CReleveSite>(CTimosInventoryDb.GetInventaireDatas()); if (lstReleves.Count() > 0) { if (MessageBox.Show( I.T("You have unsent surveys on your computer. It is recommanded to send all surveys before obtain data from Timos. Continue anyway ?|20049"), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } CFormPreparerBaseTravail form = new CFormPreparerBaseTravail(); form.ShowDialog(); form.Dispose(); InitListeSites(); InitListeReleves(); }
public void CreateAlarmesOnTrap(CTrapInstance trap, CFuturocomTrace trace) { trap.CurrentTrapHandler = this; CDefinitionProprieteDynamiqueVariableFormule def = AssureVariableTrap(FormulePreTraitementTrap); CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(TypeAgent); if (def != null) { ctx.SetValeurVariable(def, trap); } CResultAErreur result = CResultAErreur.True; trap.EntiteAssociee = null; if (FormuleIndexEntite != null && TypeEntiteAssocie != null) { CContexteEvaluationExpression ctxSurThis = new CContexteEvaluationExpression(trap); result = FormuleIndexEntite.Eval(ctxSurThis); if (result && result.Data != null) { CListeEntitesDeMemoryDb <CEntiteSnmpPourSupervision> lst = trap.AgentSnmp.Entites; lst.Filtre = new CFiltreMemoryDb(CEntiteSnmpPourSupervision.c_champIndex + "=@1 and " + CTypeEntiteSnmpPourSupervision.c_champId + "=@2", result.Data.ToString(), TypeEntiteAssocie.Id); if (lst.Count() > 0) { trap.EntiteAssociee = lst.ElementAt(0); if (trace != null) { trace.Write( "Trap associated to entity " + trap.EntiteAssociee.Libelle + " (" + trap.EntiteAssociee.TypeEntite.Libelle + ")", ALTRACE.DEBUG); } } else { if (trace != null) { trace.Write( "Associated entity is null (" + TypeEntiteAssocie.Libelle + " " + result.Data.ToString() + ")", ALTRACE.DEBUG); } } } else { if (trace != null) { if (!result) { trace.Write( "Error in associed entity index formula : " + result.Erreur.ToString(), ALTRACE.DEBUG); } else { trace.Write( "Error in associed entity index formula : the formula returned a null result", ALTRACE.DEBUG); } } } } bool bEvalPretraite = true; if (FormulePreTraitementTrap is C2iExpressionGraphique && FormulePreTraitementTrap.Parametres.Count == 0) { bEvalPretraite = false; } if (bEvalPretraite) { result = FormulePreTraitementTrap.Eval(ctx); if (!result && trace != null) { trace.Write( "Error in Pretreatment formula " + result.Erreur.ToString(), ALTRACE.DEBUG); } } foreach (CCreateurAlarme createur in CreateursAlarmes) { if (trace != null) { trace.Write( "Try creator " + createur.Libelle + " (" + createur.Code + ")", ALTRACE.DEBUG); } bool bCreer = createur.FormuleCondition.GetType() == typeof(C2iExpressionVrai); if (!bCreer) { ctx = new CContexteEvaluationExpression(trap); result = createur.FormuleCondition.Eval(ctx); if (result && result.Data is bool && (bool)result.Data) { bCreer = true; } else if (trace != null) { if (!result) { trace.Write( "Creator " + createur.Libelle + " condition error : " + result.Erreur.ToString(), ALTRACE.DEBUG); } else { trace.Write( "Create " + createur.Libelle + " condition returned false", ALTRACE.DEBUG); } } } if (bCreer) { if (trace != null) { trace.Write( "Creator " + createur.Libelle + " condition returned true", ALTRACE.DEBUG); } trap.AddAlarm(createur.Code, 0, trace); } } }
public CResultAErreurType <CMappageIdsAlarmes> Traite(CMemoryDb dbContenantLesAlarmesATraiter) { CResultAErreurType <CMappageIdsAlarmes> result = new CResultAErreurType <CMappageIdsAlarmes>(); result.SetTrue(); CResultAErreur resErreur = CResultAErreur.True; try { lock (typeof(CLockerTraitementAlarme)) { resErreur = AssureSessionEtContexte(); if (!resErreur) { result.EmpileErreur(resErreur.Erreur); return(result); } CListeEntitesDeMemoryDb <CLocalAlarme> lstAlarmes = new CListeEntitesDeMemoryDb <CLocalAlarme>(dbContenantLesAlarmesATraiter); lstAlarmes.Filtre = new CFiltreMemoryDb(CMemoryDb.c_champIsToRead + "=@1", false); lstAlarmes.Sort = CLocalAlarme.c_champDateDebut; //Mappage des ids pour les alarmes qui changent d'ID m_nNbAlarmesTraitees += lstAlarmes.Count(); CMappageIdsAlarmes dicMapIds = new CMappageIdsAlarmes(); HashSet <string> alarmesTraitees = new HashSet <string>(); using (CContexteDonnee ctxEdit = m_contexteDonnee.GetContexteEdition()) { ctxEdit.EnableTraitementsExternes = false; ctxEdit.DisableHistorisation = true; try { foreach (CLocalAlarme alrm in lstAlarmes) { if (!alarmesTraitees.Contains(alrm.Id)) { CLocalAlarme root = alrm; while (root.Parent != null && !root.Parent.IsToRead()) { root = root.Parent; } GereHierarchie(ctxEdit, root, dicMapIds, alarmesTraitees, null); } } result.DataType = dicMapIds; } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } finally { if (result) { resErreur = SauvegardeOptimisee(ctxEdit); if (!resErreur) { result.EmpileErreur(resErreur.Erreur); } } else { ctxEdit.CancelEdit(); } } } } } catch (Exception e) { { C2iEventLog.WriteErreur(I.T("Error in Alarms @1|20156", e.ToString())); } } finally { } Console.WriteLine("Alarmes traitées : " + m_nNbAlarmesTraitees + " à " + DateTime.Now.ToString("HH:mm:ss")); return(result); }