//API-Helpers private void RollBack() { FolderUtilities.RenameFolder(m_AppConfig.BackupPath, m_AppConfig.InstallationPath); m_LogManager.WriteInfo("Performing RollBack : "); if (!m_ServiceManager.ServiceExists()) { m_ServiceManager.InstallService(); m_ServiceManager.StartService(); } else { m_ServiceManager.StartService(); } }
private void DeleteInstalltion() { m_LogManager.WriteInfo("Deleteing Installtion : "); if (FolderUtilities.Exists(m_AppConfig.InstallationPath)) { FolderUtilities.DeleteFolder(m_AppConfig.InstallationPath); } if (m_ServiceManager.ServiceRunning()) { m_ServiceManager.StopService(); } if (m_ServiceManager.ServiceExists()) { m_ServiceManager.DeleteService(); } }
public void Deploy() { eDeployment deployType = eDeployment.NewInstall; try { string currentVer = FileUtilities.GetVersion(m_AppConfig.ExecutablePath); string upgradeVer = FileUtilities.GetVersion(FolderUtilities.GetExecutablePath(m_AppConfig.RemotePath)); if (currentVer == upgradeVer && !string.IsNullOrEmpty(currentVer)) { deployType = eDeployment.VersionAlreadyExists; throw new Exception("current version is :" + currentVer + ", trying to deploy : " + upgradeVer + " [Same Version]"); } m_LogManager.WriteInfo("Deploy Started"); m_LogManager.WriteInfo("Current Version : " + currentVer + " , Deploying Version : " + upgradeVer); if (m_ServiceManager.service()) { m_LogManager.WriteInfo("Service Already Exists."); if (m_ServiceManager.ServiceRunning()) { m_ServiceManager.StopService(); m_ServiceManager.DeleteService(); } else { m_ServiceManager.DeleteService(); } } //new install if (FolderUtilities.Exists(m_AppConfig.InstallationPath)) { m_LogManager.WriteInfo("Folder Already Exists."); deployType = eDeployment.Upgrade; if (FolderUtilities.Exists(m_AppConfig.BackupPath)) { throw new Exception("You are trying to install older version(Backup already exists)"); } FolderUtilities.RenameFolder(m_AppConfig.InstallationPath, m_AppConfig.BackupPath); } m_LogManager.WriteInfo("Copying remote folder."); FolderUtilities.CopyFolder(m_AppConfig.RemotePath, m_AppConfig.InstallationPath); refreshAppConfig(); m_ServiceManager.InstallService(); m_ServiceManager.StartService(); } catch (Exception ex) { string exception = ex.Message; switch (deployType) { case eDeployment.NewInstall: DeleteInstalltion(); exception += "[Installtion aborted]"; break; case eDeployment.Upgrade: RollBack(); exception += "[RollBack Preformed]"; break; case eDeployment.VersionAlreadyExists: exception += "[Idle]"; break; } throw new Exception(exception); } }