コード例 #1
0
ファイル: CInventoryConvertor.cs プロジェクト: ykebaili/Timos
    //-------------------------------------------------------------
    public static CResultAErreur IntegreReleves(C2iSessionInventaire session,
                                                CMemoryDb db)
    {
        CResultAErreur result = CResultAErreur.True;

        try
        {
            DateTime dt = DateTime.Now;

            CListeEntitesDeMemoryDb <TID.releve.CReleveSite> lstReleves = new CListeEntitesDeMemoryDb <TID.releve.CReleveSite>(db);
            using (CContexteDonnee ctx = new CContexteDonnee(session.Session.IdSession, true, false))
            {
                foreach (TID.releve.CReleveSite releve in lstReleves)
                {
                    result = IntegreReleve(releve, ctx);
                    if (!result)
                    {
                        return(result);
                    }
                }
                TimeSpan sp = DateTime.Now - dt;
                Console.WriteLine(sp.TotalMilliseconds);

                dt     = DateTime.Now;
                result = ctx.SaveAll(false);
                sp     = DateTime.Now - dt;
                Console.WriteLine(sp.TotalMilliseconds);
            }
        }
        catch (Exception e)
        {
            result.EmpileErreur(new CErreurException(e));
        }
        return(result);
    }
コード例 #2
0
        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);
        }
コード例 #3
0
 //-------------------------------------------------------
 public void NettoyageDB()
 {
     lock (typeof(CLockerDatabase))
         lock (typeof(CLockListeAlarmes))
         {
             List <CLocalAlarme> listeATraiter          = new List <CLocalAlarme>();
             CListeEntitesDeMemoryDb <CLocalAlarme> lst = new CListeEntitesDeMemoryDb <CLocalAlarme>(Database);
             lst.Filtre = new CFiltreMemoryDb(CLocalAlarme.c_champIdParent + " is null");
             foreach (CLocalAlarme alarme in lst)
             {
                 if (!m_listeAlarmesATransmettre.Contains(alarme))
                 {
                     listeATraiter.Add(alarme);
                 }
             }
             while (listeATraiter.Count > 0)
             {
                 List <CLocalAlarme> nextList = new List <CLocalAlarme>();
                 foreach (CLocalAlarme alrm in listeATraiter)
                 {
                     if (alrm.EtatCode == EEtatAlarme.Close)
                     {
                         CLocalAlarme parent = alrm.Parent;
                         if (parent != null && !m_listeAlarmesATransmettre.Contains(parent))
                         {
                             nextList.Add(parent);
                         }
                     }
                     DeleteAlarme(alrm);
                 }
                 listeATraiter = nextList;
             }
         }
 }
コード例 #4
0
        private void InitListeSites()
        {
            DateTime?dt = CTimosInventoryRegistre.DateDonneesTimos;

            if (dt != null)
            {
                m_lblDateData.Text = I.T("Last data sync : @1|20048", dt.Value.ToShortDateString() + " " +
                                         dt.Value.ToString("HH:mm"));
            }
            else
            {
                m_lblDateData.Text = "";
            }
            CMemoryDb db = CTimosInventoryDb.GetTimosDatas();
            CListeEntitesDeMemoryDb <CSite> lst = new CListeEntitesDeMemoryDb <CSite>(db);

            m_wndListeSites.BeginUpdate();
            m_wndListeSites.Items.Clear();
            lst.Filtre = new CFiltreMemoryDb(CSite.c_champIdSiteParent + " is null");
            lst.Sort   = CSite.c_champLibelle;
            foreach (CSite site in lst)
            {
                ListViewItem item = new ListViewItem(site.Libelle);
                item.Tag = site;
                m_wndListeSites.Items.Add(item);
            }
            m_wndListeSites.EndUpdate();
        }
コード例 #5
0
        //-------------------------------------------------------------------
        public void UpdateArbre(CFormWaiting waiter)
        {
            if (m_dbDeconnectee == null)
            {
                RecupereListeSites(waiter);
            }
            if (m_dbDeconnectee == null)
            {
                return;
            }
            waiter.ReportProgress(I.T("Loading data...|20012"));
            CListeEntitesDeMemoryDb <CSite> lstSites = new CListeEntitesDeMemoryDb <CSite>(m_dbDeconnectee);

            lstSites.Filtre = new CFiltreMemoryDb(CSite.c_champIdSiteParent + " is null");
            lstSites.Sort   = CSite.c_champLibelle;
            Invoke((MethodInvoker) delegate
            {
                m_arbreSites.BeginUpdate();
                m_arbreSites.Nodes.Clear();
            });
            List <TreeNode> lstNodes = new List <TreeNode>();

            foreach (CSite site in lstSites)
            {
                TreeNode node = CreateNodeSite(site);
                lstNodes.Add(node);
            }
            Invoke((MethodInvoker) delegate
            {
                m_arbreSites.Nodes.AddRange(lstNodes.ToArray());
                m_arbreSites.EndUpdate();
            });
        }
コード例 #6
0
        public void RemplirListeAlarmes()
        {
            BeginUpdate();

            m_dicAlarmeNode.Clear();
            Nodes.Clear();

            CListeEntitesDeMemoryDb <CLocalAlarme> listeAlarmes = new CListeEntitesDeMemoryDb <CLocalAlarme>(m_database, m_filtreAlarmes);

            foreach (CLocalAlarme alarme in listeAlarmes)
            {
                if (alarme.Parent == null)
                {
                    if (m_bTraiteAlarmesEnCours && alarme.DateFin == null)
                    {
                        UpdateNode(new CLocalAlarmeAffichee(alarme.Row.Row));
                    }
                    if (!m_bTraiteAlarmesEnCours && alarme.DateFin != null && alarme.DateFin.Value.AddMinutes(m_nDurreePersistanceRetombees) > DateTime.Now)
                    {
                        UpdateNode(new CLocalAlarmeAffichee(alarme.Row.Row));
                    }
                }
            }

            EndUpdate();
        }
コード例 #7
0
 //-------------------------------------
 private void m_lnkReset_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     if (MessageBox.Show(I.T("This action will reset the entire survey. Are you sure ?|20042"),
                         "",
                         MessageBoxButtons.YesNo,
                         MessageBoxIcon.Question) == DialogResult.Yes)
     {
         CListeEntitesDeMemoryDb <CReleveEquipement> lstEqpts = m_releve.RelevesEquipement;
         lstEqpts.Filtre = new CFiltreMemoryDb(CReleveEquipement.c_champIdContenant + " is null");
         CResultAErreur result = CResultAErreur.True;
         foreach (CReleveEquipement releve in lstEqpts.ToArray())
         {
             result = releve.Delete();
             if (!result)
             {
                 break;
             }
         }
         if (!result)
         {
             CFormAlerte.Afficher(result.Erreur);
         }
         else
         {
             m_releve.DateReleve = DateTime.Now;
             m_releve.InitEquipementsReleves();
             InitForm();
         }
     }
 }
コード例 #8
0
        //----------------------------------------------------------
        public IEnumerable <CAgentSnmpPourSupervision> GetAgents(CTypeAgentPourSupervision typeAgent)
        {
            CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision> lst = new CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision>(DataBase,
                                                                                                                              new CFiltreMemoryDb(CTypeAgentPourSupervision.c_champId + "=@1", typeAgent.Id));

            return(lst);
        }
コード例 #9
0
ファイル: CDataRoomServer.cs プロジェクト: ykebaili/sc2idlls
        //----------------------------------------------------------------
        public IEnumerable <string> GetEntities(string strIdTable, DateTime dataStart, DateTime dataEnd)
        {
            HashSet <string>        setIds = new HashSet <string>();
            COptimizedDataRoomTable table  = m_optimizedDb.GetTable(strIdTable);

            if (table != null)
            {
                strIdTable = table.TableId;
            }
            CListeEntitesDeMemoryDb <CDataRoom> lstRooms = new CListeEntitesDeMemoryDb <CDataRoom>(m_database);

            foreach (CDataRoom room in lstRooms)
            {
                try
                {
                    IDataRoomServer srv = GetRoomServer(room);
                    if (srv != null)
                    {
                        IEnumerable <string> lst = srv.GetEntitiesDirect(strIdTable, dataStart, dataEnd);
                        if (lst != null)
                        {
                            foreach (string strId in lst)
                            {
                                setIds.Add(strId);
                            }
                        }
                    }
                }
                catch { }
            }
            return(setIds);
        }
コード例 #10
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));
        }
コード例 #11
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);
                }
            }
        }
コード例 #12
0
ファイル: CReleveSite.cs プロジェクト: ykebaili/Timos
        //-------------------------------------------------------
        public void ClearRelevesEquipements()
        {
            CListeEntitesDeMemoryDb <CReleveEquipement> lst = RelevesEquipement;

            lst.Filtre = new CFiltreMemoryDb(CReleveEquipement.c_champIdContenant + " is null");
            foreach (CReleveEquipement releve in lst.ToArray())
            {
                releve.Delete();
            }
        }
コード例 #13
0
        //----------------------------------------------------------
        public IEnumerable <CAgentSnmpPourSupervision> GetAgentsForIp(string strIp)
        {
            CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision> lst = new CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision>(DataBase,
                                                                                                                              new CFiltreMemoryDb(CAgentSnmpPourSupervision.c_champIp + "=@1 or " +
                                                                                                                                                  CAgentSnmpPourSupervision.c_champTrapsIp + " like @2",
                                                                                                                                                  strIp,
                                                                                                                                                  "%," + strIp + ",%"));

            return(lst);
        }
コード例 #14
0
        //-------------------------------------------------------
        public void RedescendAlarmes(CMemoryDb dbContenantLesAlarmesARedescendre)
        {
            CListeEntitesDeMemoryDb <CLocalAlarme> lst = new CListeEntitesDeMemoryDb <CLocalAlarme>(dbContenantLesAlarmesARedescendre);

            foreach (CLocalAlarme alrm in lst)
            {
                CLocalAlarme myAlarm = new CLocalAlarme(m_database);
                if (myAlarm.ReadIfExist(alrm.Id))
                {
                    GereAlarme(alrm, EModeRemonteeAlarmes.NePasRemonter);
                }
            }
        }
コード例 #15
0
ファイル: CDataRoomServer.cs プロジェクト: ykebaili/sc2idlls
        //----------------------------------------------------------------
        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);
        }
コード例 #16
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);
        }
コード例 #17
0
ファイル: CIndexIdTimos.cs プロジェクト: ykebaili/Timos
        //------------------------------------------------------------------------
        public static CIndexIdTimos <T> GetIdTimosIndex(CMemoryDb db)
        {
            CIndexIdTimos <T>           dic = new CIndexIdTimos <T>();
            CListeEntitesDeMemoryDb <T> lst = new CListeEntitesDeMemoryDb <T>(db);

            foreach (T entite in lst)
            {
                if (entite.IdTimos != null)
                {
                    dic[entite.IdTimos.Value] = entite;
                }
            }
            return(dic);
        }
コード例 #18
0
        //----------------------------------------------
        private void AddChildren(CItemInventaire item)
        {
            CReleveEquipement relEq = item.ReleveEquipement;
            int nIndex = item.Index;
            CListeEntitesDeMemoryDb <CReleveEquipement> lstFils = relEq.RelevesContenus;

            lstFils.Sort = CEquipement.c_champCoordonnee;
            foreach (CReleveEquipement fils in lstFils)
            {
                CItemInventaire itemFils = new CItemInventaire(item, fils);
                InsertItem(nIndex + 1, itemFils, false);
                nIndex++;
            }
            Refresh();
        }
コード例 #19
0
        //----------------------------------------------
        public void Init(CReleveSite releve)
        {
            CListeEntitesDeMemoryDb <CReleveEquipement> lstEqpts = releve.RelevesEquipement;

            lstEqpts.Filtre = new CFiltreMemoryDb(CReleveEquipement.c_champIdContenant + " is null");
            lstEqpts.Sort   = CEquipement.c_champCoordonnee;
            List <CItemInventaire> lstItems = new List <CItemInventaire>();

            foreach (CReleveEquipement relEq in lstEqpts)
            {
                CItemInventaire item = new CItemInventaire(null, relEq);
                lstItems.Add(item);
            }
            Items = lstItems.ToArray();
        }
コード例 #20
0
ファイル: CReleveSite.cs プロジェクト: ykebaili/Timos
        //-------------------------------------------------------
        public void InitEquipementsReleves(  )
        {
            //Prépare les équipements
            CListeEntitesDeMemoryDb <CEquipement> lstEqpts = Site.Equipements;

            lstEqpts.Filtre = new CFiltreMemoryDb(CEquipement.c_champIdEquipementContenant + " is null");
            lstEqpts.Sort   = CEquipement.c_champCoordonnee;
            foreach (CEquipement eqpt in lstEqpts)
            {
                CReleveEquipement relEqpt = new CReleveEquipement(Database as CReleveDb);
                relEqpt.CreateNew();
                relEqpt.ReleveSite = this;
                relEqpt.FillFromEquipement(eqpt, null);
            }
        }
コード例 #21
0
ファイル: CFormDetailSite.cs プロジェクト: ykebaili/Timos
 private void m_arbreEquipements_BeforeExpand(object sender, TreeViewCancelEventArgs e)
 {
     if (e.Node.Nodes.Count == 1 && e.Node.Nodes[0].Tag == null)
     {
         e.Node.Nodes.Clear();
         CEquipement     eqpt     = e.Node.Tag as CEquipement;
         List <TreeNode> lstNodes = new List <TreeNode>();
         CListeEntitesDeMemoryDb <CEquipement> eqpts = eqpt.EquipementsContenus;
         eqpts.Sort = CEquipement.c_champCoordonnee;
         foreach (CEquipement fils in eqpts)
         {
             TreeNode node = CreateNodeEquipement(fils);
             lstNodes.Add(node);
         }
         e.Node.Nodes.AddRange(lstNodes.ToArray());
     }
 }
コード例 #22
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;
            }
        }
コード例 #23
0
        //-----------------------------------------------------------------------------------
        private void TraiteNotification(CNotificationModificationsAlarme notification)
        {
            HashSet <string> tableAlarmeAvant = UpdateNombreAlarmesNonAcquittees();

            // Mise à jour des Alarmes
            CListeEntitesDeMemoryDb <CLocalAlarme> listeAlaremsMaj = new CListeEntitesDeMemoryDb <CLocalAlarme>(notification.MemoryDb);

            m_dataBase.AcceptChanges();
            foreach (CLocalAlarme alarmeAjoutModif in listeAlaremsMaj)
            {
                if (alarmeAjoutModif.Parent == null)
                {
                    CLocalAlarme alrm = m_dataBase.ImporteObjet(alarmeAjoutModif, true, true) as CLocalAlarme;

                    /*if (alrm != null)
                     *  alrm.Row.Row.SetModified();*/
                }
            }

            m_tableauAlarmesEnCours.UpdateDataBase(m_dataBase);
            m_tableauAlarmesRetombees.UpdateDataBase(m_dataBase);

            HashSet <string> tableAlarmeApres = UpdateNombreAlarmesNonAcquittees();

            bool bSonnerie = false;

            foreach (string strIdAlarme in tableAlarmeApres)
            {
                if (!tableAlarmeAvant.Contains(strIdAlarme))
                {
                    bSonnerie = true;
                    break;
                }
            }

            if (bSonnerie)
            {
                StartSonnerie();
            }
            else
            {
                StopSonnerie();
            }
        }
コード例 #24
0
ファイル: CFormDetailSite.cs プロジェクト: ykebaili/Timos
        private void FillEquipements()
        {
            m_arbreEquipements.BeginUpdate();
            m_arbreEquipements.Nodes.Clear();
            CListeEntitesDeMemoryDb <CEquipement> lstEqts = m_site.Equipements;

            lstEqts.Sort   = CEquipement.c_champCoordonnee;
            lstEqts.Filtre = new CFiltreMemoryDb(CEquipement.c_champIdEquipementContenant + " is null");
            lstEqts.Sort   = CEquipement.c_champCoordonnee + ", " + CTypeEquipement.c_champId;
            List <TreeNode> lstNodes = new List <TreeNode>();

            foreach (CEquipement eqpt in lstEqts)
            {
                TreeNode node = CreateNodeEquipement(eqpt);
                lstNodes.Add(node);
            }
            m_arbreEquipements.Nodes.AddRange(lstNodes.ToArray());
            m_arbreEquipements.EndUpdate();
        }
コード例 #25
0
ファイル: CInventoryConvertor.cs プロジェクト: ykebaili/Timos
    //-------------------------------------------------------------
    private static CResultAErreur IntegreReleve(TID.releve.CReleveSite releve,
                                                CContexteDonnee ctx)
    {
        CResultAErreur result      = CResultAErreur.True;
        CReleveSite    releveTimos = new CReleveSite(ctx);

        releveTimos.CreateNewInCurrentContexte();
        CSite site = GetObjetTimos <CSite>(releve.Row[TID.CSite.c_champId], ctx);

        if (site == null)
        {
            result.EmpileErreur("Site doesn't exists");
            return(result);
        }
        try
        {
            //Précharge les données
            CListeObjetsDonnees lst = new CListeObjetsDonnees(ctx, typeof(CTypeEquipement));
            lst.AssureLectureFaite();
            lst = new CListeObjetsDonnees(ctx, typeof(CRelationTypeEquipement_Constructeurs));
            lst.AssureLectureFaite();
            lst = site.Equipements;
            releveTimos.Site       = site;
            releveTimos.DateReleve = releve.DateReleve;
            CListeEntitesDeMemoryDb <TID.releve.CReleveEquipement> lstEqpts = releve.RelevesEquipement;
            lstEqpts.Filtre = new CFiltreMemoryDb(TID.releve.CReleveEquipement.c_champIdContenant + " is null");
            foreach (TID.releve.CReleveEquipement relEq in lstEqpts)
            {
                result = IntegreReleveEquipement(relEq, null, releveTimos);
                if (!result)
                {
                    return(result);
                }
            }
        }
        catch (Exception e)
        {
            result.EmpileErreur(new CErreurException(e));
        }
        return(result);
    }
コード例 #26
0
ファイル: CDataDispatch.cs プロジェクト: ykebaili/sc2idlls
        //--------------------------------------------------------
        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);
        }
コード例 #27
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);
        }
コード例 #28
0
        //------------------------------------------------------------------
        public CAgentSnmpPourSupervision[] GetAgentsFromKey(CTrapInstance trap)
        {
            CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision> lstAgents =
                new CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision>(Database);

            if (FormuleCleSpecifique != null)
            {
                CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(trap);
                CResultAErreur result             = FormuleCleSpecifique.Eval(ctx);
                if (result && result.Data != null && result.Data is string)
                {
                    lstAgents.Filtre = new CFiltreMemoryDb(
                        CAgentSnmpPourSupervision.c_champTrapsIp + " like @1",
                        "%," + (string)result.Data + ",%");

                    return(lstAgents.ToArray());
                }
            }

            return(new CAgentSnmpPourSupervision[] { });
        }
コード例 #29
0
        private void InitListeReleves()
        {
            CMemoryDb db = CTimosInventoryDb.GetInventaireDatas();
            CListeEntitesDeMemoryDb <CReleveSite> lst = new CListeEntitesDeMemoryDb <CReleveSite>(db);

            m_wndListeReleves.BeginUpdate();
            m_wndListeReleves.Items.Clear();
            lst.Sort = CReleveSite.c_champDate;
            foreach (CReleveSite releve in lst)
            {
                CSite site = releve.Site;
                if (site != null)
                {
                    ListViewItem item = new ListViewItem(site.LibelleComplet);
                    item.Tag     = releve;
                    item.Checked = true;
                    m_wndListeReleves.Items.Add(item);
                }
            }
            m_wndListeReleves.EndUpdate();
        }
コード例 #30
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));
        }