/// <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; }