public void NotifyObject(Object obj) { if (obj is DBAccess) { saAccess = (DBAccess)obj; } if (obj is ImportInfo) { importInfo = (ImportInfo)obj; } if (obj is ServicesInfo) { servicesInfo = (ServicesInfo)obj; } if (obj is FrontendInfo) { frontendInfo = (FrontendInfo)obj; } }
private ServicesInfo GetServicesInfo() { ServicesInfo servicesInfo = new ServicesInfo(txtInstallDirectory.Text); TextReader reader; reader = new StreamReader(txtInstallDirectory.Text + "PrintLogImporter_install.log"); servicesInfo.printLogImporterStatus = reader.ReadToEnd(); reader.Close(); reader = new StreamReader(txtInstallDirectory.Text + "CopyLogImporter_install.log"); servicesInfo.copyLogImporterStatus = reader.ReadToEnd(); reader.Close(); reader = new StreamReader(txtInstallDirectory.Text + "ReportMailer_install.log"); servicesInfo.reportMailerStatus = reader.ReadToEnd(); reader.Close(); return(servicesInfo); }
private void BeginInstallationProcess() { // Extrai os arquivos de instalação do pacote (zip) if (!ExtractInstallationFiles()) { return; } if ((this.beginAt != -1) && (saAccess != null)) { // Cria o XML de configuração no diretório temporário String installationFilesDirectory = Path.Combine(Path.GetTempPath(), "AccountingServerFiles"); DBAccess.BuildDataAccess(saAccess.server, "FrameworkUser", "Abcd1234.", installationFilesDirectory); } switch (beginAt) { case 1: saAccess = null; CreateDatabaseForm createDatabase = new CreateDatabaseForm(this); createDatabase.ShowDialog(); if (saAccess == null) { MessageBox.Show("Operação cancelada pelo usuário!"); return; } goto case 2; // continua para a próxima tela case 2: importInfo = null; ImportForm import = new ImportForm(saAccess, this); import.ShowDialog(); if (importInfo == null) { MessageBox.Show("Operação cancelada pelo usuário!"); return; } if (beginAt == 2) { break; } goto case 3; // continua para a próxima tela case 3: servicesInfo = null; InstallServicesForm installServices = new InstallServicesForm(this); installServices.ShowDialog(); if (servicesInfo == null) { MessageBox.Show("Operação cancelada pelo usuário!"); return; } if (beginAt == 3) { break; } goto case 4; // continua para a próxima tela case 4: frontendInfo = null; InstallWebFrontendForm installWebFrontend = new InstallWebFrontendForm(saAccess, this); installWebFrontend.ShowDialog(); if (frontendInfo == null) { MessageBox.Show("Operação cancelada pelo usuário!"); return; } if (chkOpenFrontend.Checked) { Process.Start("http://localhost/" + frontendInfo.siteName); } break; } MessageBox.Show("Execução concluída. Encerrando instalador..."); this.Close(); }
private Boolean InstallServices() { txtProcessInfo.Text += Environment.NewLine + "Iniciando instalação..."; const String installFail = "Falha ao instalar serviços. "; if (String.IsNullOrEmpty(txtInstallDirectory.Text)) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + "É necessário informar um diretório. "; return(false); } // Ajusta o formato do caminho de instalação txtInstallDirectory.Text = PathFormat.Adjust(txtInstallDirectory.Text); txtProcessInfo.Text += Environment.NewLine + "Preparando-se para copiar arquivos..."; TargetDirectory targetDir = new TargetDirectory(txtInstallDirectory.Text); // Prepara o diretório de destino ( faz algumas verificações / cria o diretório ) // Caso existam arquivos no diretório aborta e exibe mensagem de erro if (!targetDir.Mount()) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + targetDir.GetLastError(); return(false); } txtProcessInfo.Text += Environment.NewLine + "Copia de arquivos iniciada..."; FileInfo[] sourceFiles = null; try // tenta obter os arquivos de origem (extraídos do instalador) { String tempFolder = PathFormat.Adjust(Path.GetTempPath()); String installationFilesDirectory = PathFormat.Adjust(tempFolder + "AccountingServerFiles"); File.Copy(installationFilesDirectory + "DataAccess.XML", installationFilesDirectory + @"WindowsServices\DataAccess.XML", true); DirectoryInfo sourceDirectory = new DirectoryInfo(installationFilesDirectory + "WindowsServices"); sourceFiles = sourceDirectory.GetFiles("*.*", SearchOption.AllDirectories); } catch (Exception exc) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + exc.Message; return(false); } // Tenta copiar os arquivos para o diretório de instalação if (!targetDir.CopyFilesFrom(sourceFiles)) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + targetDir.GetLastError(); return(false); } try // Tenta registrar os serviços no sistema operacional e inicia-los { txtProcessInfo.Text += Environment.NewLine + "Registrando serviços no Windows..."; ServiceHandler.InstallService(txtInstallDirectory.Text + "PrintLogImporter.EXE"); ServiceHandler.InstallService(txtInstallDirectory.Text + "CopyLogImporter.EXE"); ServiceHandler.InstallService(txtInstallDirectory.Text + "ReportMailer.EXE"); txtProcessInfo.Text += Environment.NewLine + "Iniciando serviços..."; ServiceHandler.StartService("Print Log Importer", 33000); ServiceHandler.StartService("Copy Log Importer", 33000); ServiceHandler.StartService("Report Mailer", 33000); } catch (Exception exc) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + exc.Message; return(false); } // Se não houve nenhuma falha retorna informações da instalação e notifica sucesso servicesInfo = GetServicesInfo(); return(true); }