Пример #1
0
        /// <summary>
        /// Class constructor
        /// </summary>
        /// <param name="localData">Local data reference</param>
        public CUpdatesManager(CLocalData localData)
        {
            m_localData         = localData;
            m_versionFileParser = new CVersionFileParser(m_localData);
            m_scheduleUpdates   = new CScheduleUpdates(m_localData);
            m_scheduleUpdates.Event_UpdateSystem += UpdateSystem;
            m_systemFilesManager = new CSystemFilesManager(m_localData);
            m_comUpdaterService  = new CComUpdaterService();
            m_comRemoteManager   = new CComRemoteManager();
            m_comWebManager      = new CComWebManager();

            //Descargar los archivos de actualización si no están descargados
            DownloadSwUpdate();

            //Enviar comprobación de actualización al Web Manager
            string ipWebManager = m_localData.GetWebManagerUri();

            if (!string.IsNullOrEmpty(ipWebManager))
            {
                m_comWebManager.StartUpdate(ipWebManager);
            }
        }
Пример #2
0
        /// <summary>
        /// Updates the system with the latest software version from the JBC's server
        /// </summary>
        public void UpdateSystem()
        {
            //Si está actualizando no recibir peticiones
            if (m_isUpdating)
            {
                return;
            }
            m_isUpdating = true;

            //Actualiza la fecha de la última actualización del software
            m_localData.SetLastUpdateDate();

            stSwVersion infoUpdateSw = GetInfoNewUpdate();

            //Comprobar si hay actualizacion software del StationController
            if (infoUpdateSw.stationControllerSwAvailable)
            {
                //Descargar la versión de software y actualizar DB
                m_systemFilesManager.DownloadFile(infoUpdateSw.stationControllerSwUrl);
                m_localData.SetStationControllerSwInfo(infoUpdateSw.stationControllerSwVersion, infoUpdateSw.stationControllerSwDate, infoUpdateSw.stationControllerSwUrl);
            }

            //Comprobar si hay actualizacion software del RemoteManager
            if (infoUpdateSw.remoteManagerSwAvailable)
            {
                //Descargar la versión de software y actualizar DB
                m_systemFilesManager.DownloadFile(infoUpdateSw.remoteManagerSwUrl);
                m_localData.SetRemoteManagerSwInfo(infoUpdateSw.remoteManagerSwVersion, infoUpdateSw.remoteManagerSwDate, infoUpdateSw.remoteManagerSwUrl);
            }

            //Comprobar si hay actualizacion software del WebManager
            if (infoUpdateSw.webManagerSwAvailable)
            {
                //Descargar la versión de software y actualizar DB
                m_systemFilesManager.DownloadFile(infoUpdateSw.webManagerSwUrl);
                m_localData.SetWebManagerSwInfo(infoUpdateSw.webManagerSwVersion, infoUpdateSw.webManagerSwDate, infoUpdateSw.webManagerSwUrl);
            }

            //Si hay actualización del WebManager pero no del HostController
            //Ya que si hay actualización del HostController, éste se reiniciará y comprobará si se tiene que actualizar
            if (infoUpdateSw.webManagerSwAvailable && !infoUpdateSw.hostControllerSwAvailable)
            {
                //Descargar la versión de software y actualizar DB
                m_systemFilesManager.DownloadFile(infoUpdateSw.webManagerSwUrl);
                m_localData.SetWebManagerSwInfo(infoUpdateSw.webManagerSwVersion, infoUpdateSw.webManagerSwDate, infoUpdateSw.webManagerSwUrl);

                //Enviar comprobación de actualización al Web Manager
                string ipWebManager = m_localData.GetWebManagerUri().ToString();
                if (!string.IsNullOrEmpty(ipWebManager))
                {
                    m_comWebManager.StartUpdate(ipWebManager);
                }
            }

            //Comprobar si hay actualizacion software del HostController
            if (infoUpdateSw.hostControllerSwAvailable)
            {
                //Descargar la versión de software, no actualiza ls DB para que al reiniciar el HostController ejecute los scripts sql de actualización
                string hostControllerSwUpdatePath = m_systemFilesManager.DownloadFile(infoUpdateSw.hostControllerSwUrl);

                //Actualizar el HostController
                m_comUpdaterService.SendUpdateSw(hostControllerSwUpdatePath, System.Net.Dns.GetHostName());
            }

            m_isUpdating = false;
        }