private void GetDataMediation()
 {
     using (CWaitCursor waiter = new CWaitCursor())
     {
         CSnmpConnexion cnx = GetConnexion();
         try
         {
             IServiceMediation service             = cnx.ServiceMediation;
             CConfigurationServiceMediation config = service.Configuration;
             DataSet ds = config.DataBase;
             m_dataGrid.DataSource = ds;
         }
         catch (Exception ex)
         {
             CResultAErreur result = CResultAErreur.True;
             result.EmpileErreur(new CErreurException(ex));
             result.EmpileErreur(I.T("Error while reading configuration|20331"));
             CFormAlerte.Afficher(result.Erreur);
         }
     }
 }
Ejemplo n.º 2
0
        //----------------------------------------------------------
        //Prépare la liste des éléments à poller.
        public void UpdateFromServiceMediation(CConfigurationServiceMediation configuration)
        {
            //Permet d'éliminer les éléments qui ne font plus partie du service de médiation
            Dictionary <string, bool> dicToDelete = new Dictionary <string, bool>();

            foreach (string strId in m_dicIdToInfoPolling.Keys)
            {
                dicToDelete[strId] = true;
            }

            if (configuration == null || configuration.DataBase == null)
            {
                return;
            }

            CSnmpPollingService.InterrompPolling();
            lock (typeof(CLockerPollingList))
            {
                CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision> lstAgents = new CListeEntitesDeMemoryDb <CAgentSnmpPourSupervision>(configuration.DataBase);

                /*Filtre non nécéssaire (en plus ne marche pas) : seuls les agents de ce proxy sont dans la base
                 * lstAgents.Filtre = new CFiltreMemoryDb(CSnmpProxy.c_champId + "=@1",
                 * CSnmpProxyConfiguration.GetInstance().IdProxyConfiguré.ToString());*/

                foreach (CAgentSnmpPourSupervision agent in lstAgents)
                {
                    foreach (CSnmpPollingSetup setup in agent.PollingSetups)
                    {
                        if (setup.FrequenceMinutes != 0)//Sinon, on ne prend pas
                        {
                            dicToDelete[setup.Id] = false;
                            CInfoPolling info = null;
                            if (!m_dicIdToInfoPolling.TryGetValue(setup.Id, out info))
                            {
                                info = new CInfoPolling();
                                info.IdPollingSetup            = setup.Id;
                                info.NextPollDate              = DateTime.Now;
                                m_dicIdToInfoPolling[setup.Id] = info;
                            }
                            else
                            {
                                if (info.LastPollDate == null)
                                {
                                    info.NextPollDate = DateTime.Now;
                                }
                                else
                                {
                                    info.NextPollDate = info.LastPollDate.Value.AddMinutes(setup.FrequenceMinutes);
                                }
                            }
                        }
                    }
                    foreach (CSnmpHotelPollingSetup setup in agent.HotelPollingSetups)
                    {
                        if (setup.FrequenceMinutes != 0)//Sinon, on ne prend pas
                        {
                            dicToDelete[setup.Id] = false;
                            CInfoPolling info = null;
                            if (!m_dicIdToInfoPolling.TryGetValue(setup.Id, out info))
                            {
                                info = new CInfoPolling();
                                info.IdHotelPollingSetup       = setup.Id;
                                info.NextPollDate              = DateTime.Now;
                                m_dicIdToInfoPolling[setup.Id] = info;
                            }
                            else
                            {
                                if (info.LastPollDate == null)
                                {
                                    info.NextPollDate = DateTime.Now;
                                }
                                else
                                {
                                    info.NextPollDate = info.LastPollDate.Value.AddMinutes(setup.FrequenceMinutes);
                                }
                            }
                        }
                    }
                }
                foreach (KeyValuePair <string, bool> kvToDelete in dicToDelete)
                {
                    if (kvToDelete.Value)
                    {
                        m_dicIdToInfoPolling.Remove(kvToDelete.Key);
                    }
                }
            }
        }