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);
        }
Beispiel #2
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));
        }
Beispiel #3
0
        //--------------------------------------------------------------
        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);
                }
            }
        }
Beispiel #4
0
        //-------------------------------------------------------------------------------------
        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);
        }
Beispiel #5
0
        //----------------------------------------------------------------
        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);
        }
Beispiel #6
0
        //----------------------------------------------
        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;
            }
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        //--------------------------------------------------------
        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);
        }
Beispiel #9
0
        /// <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, "");
            }
        }
Beispiel #11
0
        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();
        }
Beispiel #12
0
        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);
                }
            }
        }
Beispiel #13
0
        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);
        }