Exemplo n.º 1
0
 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);
        }
Exemplo n.º 3
0
        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);
        }