Exemplo n.º 1
0
        //@Brief Obtiene la información de la comprobación periódica
        //@Return dc_InfoCheckPeriodicTime Información de la comprobación periódica
        public dc_InfoCheckPeriodicTime GetCheckPeriodicTime()
        {
            dc_InfoCheckPeriodicTime infoCheckPeriodicTime = new dc_InfoCheckPeriodicTime();

            infoCheckPeriodicTime.available = false;

            try
            {
                m_mutexHostControllerEndpoints.WaitOne();
                foreach (EndpointAddress ep in m_hostControllerEndpoints)
                {
                    BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
                    JBCHostControllerServiceClient serviceClient = new JBCHostControllerServiceClient(binding, ep);

                    serviceClient.Open();
                    infoCheckPeriodicTime = serviceClient.GetCheckPeriodicTime();
                    serviceClient.Close();
                }
            }
            catch (Exception ex)
            {
                LoggerModule.logger.Error(System.Reflection.MethodInfo.GetCurrentMethod().Name + ". Error: " + ex.Message);
            }
            finally
            {
                m_mutexHostControllerEndpoints.ReleaseMutex();
            }

            return(infoCheckPeriodicTime);
        }
Exemplo n.º 2
0
        private void AutomaticCheckUpdate()
        {
            bool bContinue = true;

            while (bContinue)
            {
                dc_InfoCheckPeriodicTime infoCheckPeriodic = m_comHostController.GetCheckPeriodicTime();
                if (infoCheckPeriodic.available)
                {
                    dc_InfoUpdateSoftware infoUpdate = m_comHostController.CheckUpdate();
                    if (infoUpdate.stationControllerSwAvailable || infoUpdate.remoteManagerSwAvailable || infoUpdate.hostControllerSwAvailable || infoUpdate.webManagerSwAvailable)
                    {
                        //Only raise event once
                        bContinue = false;
                        if (UpdateAvailableEvent != null)
                        {
                            UpdateAvailableEvent();
                        }
                    }
                }

                Thread.Sleep(TIME_CHECK_UPDATE);
            }
        }