/// <summary> /// Valida os dados digitados. /// </summary> /// <param name="mensagem">Mensagem de retorno da validação.</param> /// <returns></returns> private bool ValidarDados(out string mensagem) { mensagem = string.Empty; if (string.IsNullOrEmpty(NomeServico)) { mensagem = "Nome do serviço é obrigatório."; return(false); } if (string.IsNullOrEmpty(txtCaminho.Text)) { mensagem = "Caminho de instalação raiz do serviço é obrigatório."; return(false); } servicePort = (int)cmbAvaliablePorts.SelectedItem; if (servicePort < 555 || servicePort > 600) { mensagem = "Porta inválida."; return(false); } if (ServiceUtilities.PortInUse(servicePort)) { mensagem = "A porta já esta em uso."; return(false); } ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Service"); ManagementObjectCollection servicos = searcher.Get(); foreach (ManagementObject obj in servicos) { if (obj["Name"].ToString().Trim().Equals(NomeServico)) { mensagem = "Já existe um serviço com este nome.\r\n"; } if (string.IsNullOrEmpty(obj["PathName"].ToString()) ? false : obj["PathName"].ToString().Trim().Equals(CaminhoInstalacao.Trim())) { mensagem += "Já existe um serviço instalado neste caminho."; } if (!string.IsNullOrEmpty(mensagem)) { return(false); } } return(true); }
public SetupInstall(Form form) { InitializeComponent(); frmSetup = form; txtPrefixoNome.Text = Constantes.NomeServico; txtCaminho.Text = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), Constantes.NomeEmpresa); cmbAvaliablePorts.Items.AddRange(ServiceUtilities.GetAvailablePorts().Cast <object>().ToArray()); cmbAvaliablePorts.DropDownHeight = 106; cmbAvaliablePorts.SelectedIndex = 0; backgroundWorker.DoWork += backgroundWorker_DoWork; backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted; serviceInstaller = new ServiceInstaller(); processInstaller = new ServiceProcessInstaller(); serviceInstaller.AfterInstall += serviceInstaller_AfterInstall; serviceInstaller.Committed += serviceInstaller_Committed; serviceInstaller.BeforeRollback += serviceInstaller_BeforeRollback; }