Esempio n. 1
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;
        }