コード例 #1
0
        /// <summary>
        /// Crea un certificado previo para un sobre
        /// </summary>
        /// <param name="sobre"></param>
        /// <returns></returns>
        public static string CrearXmlSobre(Sobre sobre)
        {
            List <Sobre> listaSobre = new List <Sobre>();

            listaSobre.Add(sobre);

            try
            {
                //Crear objeto serializador
                XmlSerializer        serializer = new XmlSerializer(typeof(List <Sobre>));
                System.Text.Encoding encoding   = System.Text.Encoding.GetEncoding("ISO-8859-1");

                //Serializar lista de objetos  y obtener texto
                using (StringWriter writer = new StringWriter())
                {
                    serializer.Serialize(writer, listaSobre);

                    return(writer.ToString());
                }
            }
            catch (Exception ex)
            {
                SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString());
                return(ex.Message.ToString());
            }
        }
コード例 #2
0
        private void button10_Click(object sender, EventArgs e)
        {
            Sobre tela = new Sobre();

            tela.Show();
            this.Hide();
        }
コード例 #3
0
        public ActionResult Index(Sobre sobre)
        {
            if (true)
            {
                try
                {
                    MailMessage mailMessage = new MailMessage();
                    mailMessage.From = new MailAddress(sobre.Email, sobre.Nome);
                    mailMessage.To.Add("EMAIL");
                    mailMessage.Subject = "Tomate entregas: " + sobre.Assunto;
                    mailMessage.Body    = String.Format("Nome: {1}\nEmail: {0}\nMensagem: {2}", sobre.Email.ToString(), sobre.Nome.ToString(), sobre.Mensagem);
                    //ViewBag.Email = mailMessage.ToString();

                    using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
                    {
                        // Mude o email e a senha aqui, caso tenha problemas é a falta de conexão com o servidor do gmail
                        // terá que acessar e permitir o acesso da sua conta por aplicativos não confiáveis pela google
                        smtp.Credentials = new NetworkCredential("EMAIL", "SENHA");
                        smtp.EnableSsl   = true;
                        smtp.Send(mailMessage);
                    }

                    ModelState.Clear();
                    TempData["Mensagem"] = "Obrigado por nos contatar";
                }
                catch (Exception erro)
                {
                    ModelState.Clear();
                    TempData["Mensagem"] = $"Estamos encontrando um problema em {erro.Message}.";
                }
            }
            return(View());
        }
コード例 #4
0
        /// <summary>
        /// Agregar un sobre a la lista de sobres.
        /// </summary>
        public void agregarSobre(Sobre sobre)
        {
            BindingList <Sobre> sobres = (BindingList <Sobre>)dgvSobres.DataSource;

            sobres.Add(sobre);
            dgvSobres.AutoResizeColumns();
        }
        /// <summary>
        /// Metodo para Modificar un Sobre.
        /// </summary>
        /// <param name="sobre"></param>
        public void ModificacionSobre(Sobre sobre)
        {
            using (conexion.retornarCN())
            {
                try
                {
                    conexion.abrir();
                    cmd = new MySqlCommand("UPDATE sobres SET precioNeto=@precioNeto, contenido=@contenido, asegurada=@asegurada, aumSeguro=@aumSeguro, largoRecorrido=@largoRecorrido, peso=@peso  WHERE idSobre=@idSobre", conexion.retornarCN());


                    cmd.Parameters.AddWithValue("@idSobre", sobre.IdMercancia);
                    cmd.Parameters.AddWithValue("@precioNeto", sobre.CalcularPrecioNeto());
                    cmd.Parameters.AddWithValue("@contenido", sobre.Contenido);
                    cmd.Parameters.AddWithValue("@asegurada", sobre.Asegurada);
                    cmd.Parameters.AddWithValue("@aumSeguro", sobre.AumSeguro);
                    cmd.Parameters.AddWithValue("@largoRecorrido", sobre.LargoRecorrido);
                    cmd.Parameters.AddWithValue("@peso", sobre.Peso);

                    cmd.ExecuteNonQuery();
                    conexion.cerrar();
                    MessageBox.Show("Sobre modificado");
                }
                catch (Exception ex)
                {
                    Logger.Error("Error de Modificicacion de Sobre {0}", ex.ToString());
                    MessageBox.Show("Error, no se pudo Modificar");
                }
            }
        }
コード例 #6
0
ファイル: SobresDL.cs プロジェクト: edwin2013/SITES
        /// <summary>
        /// Obtener todos los sobres que pertenecen a una inconsistencia en un deposito.
        /// </summary>
        /// <param name="i">Inconsistencia en un deposito para la cual se obtiene la lista de sobre</param>
        public void obtenerSobresInconsistencia(ref InconsistenciaDeposito i)
        {
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectInconsistenciaDepositoSobres");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@inconsistencia", i.Id, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int     id              = (int)datareader["pk_ID"];
                    int     numero          = (int)datareader["Numero"];
                    decimal monto_reportado = (decimal)datareader["Monto_Reportado"];
                    decimal monto_real      = (decimal)datareader["Monto_Real"];
                    Monedas moneda          = (Monedas)datareader["Moneda"];

                    Sobre sobre = new Sobre(id, numero, monto_reportado, monto_real, moneda);
                    i.agregarSobre(sobre);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
コード例 #7
0
        /// <summary>
        /// Realiza el envio de los sobre por medio del web service de DGI.
        /// </summary>
        /// <param name="sobre"></param>
        public void EnviarSobre(Sobre sobre, Sobre sobreDgi, CFE cfe, CAE cae)
        {
            ParametrosJobWsDGI parametrosJobWsDGI = new ParametrosJobWsDGI(RUTA_CERTIFICADO, CLAVE_CERTIFICADO, URL_ENVIO, URL_CONSULTAS, cfe, cae);

            try
            {
                parametrosJobWsDGI.Sobre    = sobre;
                parametrosJobWsDGI.SobreDgi = sobreDgi;

                comunicacionDGI.ConsumirWsEnviarSobre(parametrosJobWsDGI);
            }
            catch (Exception ex)
            {
                SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString());
            }


            finally
            {
                //if (parametrosJobWsDGI != null)
                //{
                //    //Libera de memoria el objeto factura
                //    GC.SuppressFinalize(parametrosJobWsDGI);
                //    GC.Collect();
                //}
            }
        }
        /// <summary>
        /// Metodo para dar de alta un Sobre.
        /// </summary>
        /// <param name="sobre"></param>
        public void AltaSobre(Sobre sobre)
        {
            using (conexion.retornarCN())
            {
                try
                {
                    conexion.abrir();
                    cmd = new MySqlCommand("Insert into sobres(precioNeto,contenido,asegurada,aumSeguro,largoRecorrido,peso) values( @precioNeto, @contenido, @asegurada, @aumSeguro,@largoRecorrido, @peso)", conexion.retornarCN());
                    cmd.Parameters.AddWithValue("@precioNeto", sobre.CalcularPrecioNeto());
                    cmd.Parameters.AddWithValue("@contenido", sobre.Contenido);
                    cmd.Parameters.AddWithValue("@asegurada", sobre.Asegurada);
                    cmd.Parameters.AddWithValue("@aumSeguro", sobre.AumSeguro);
                    cmd.Parameters.AddWithValue("@largoRecorrido", sobre.LargoRecorrido);
                    cmd.Parameters.AddWithValue("@peso", sobre.Peso);

                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Sobre agregado");
                }
                catch (Exception ex)
                {
                    Logger.Error("Error de alta de Sobre {0}", ex.ToString());
                    MessageBox.Show("No se pudo dar el Alta el Sobre");
                }
            }
        }
コード例 #9
0
        /// <summary>
        /// Obtiene los datos del sobre de un xml
        /// </summary>
        /// <param name="sobre"></param>
        /// <returns></returns>
        private Sobre obtenerDatosSobre(Sobre sobre, string nombreSobre)
        {
            string nombreExt = nombreSobre + ".xml";

            try
            {
                FTP ftp = new FTP();
                //Se descarga el archivo del servidor ftp
                //ftp.descargarArchivos(nombreExt, RutasCarpetas.RutaCarpetaSobresTemporales, 5);
                //ftp.descargarArchivos(nombreExt, RutasCarpetas.RutaCarpetaSobresDgi, 10);
                //ftp.descargarArchivos(nombreExt, RutasCarpetas.RutaCarpetaComprobantes, 6);
                //Se borra del ftp
                //ftp.EliminarFTP(5, nombreExt);
                //ftp.EliminarFTP(10, nombreExt);
                //ftp.EliminarFTP(6, nombreExt);

                XmlDocument documento = new XmlDocument();
                documento.Load(RutasCarpetas.RutaCarpetaContingenciaSobresDgi + nombreExt);
                sobre.Nombre = nombreSobre;
            }
            catch (Exception)
            {
                //Se muestra mensaje de error
                AdminEventosUI.mostrarMensaje(Mensaje.errNoDescargaSobres + nombreExt, AdminEventosUI.tipoMensajes.error);
            }

            return(sobre);
        }
コード例 #10
0
ファイル: Form1.cs プロジェクト: CaioFerreiraSantos/Lp2
        private void sobreToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Sobre frmC = new Sobre();

            frmC.MdiParent   = this;
            frmC.WindowState = FormWindowState.Maximized;
            frmC.Show();
        }
コード例 #11
0
        public ActionResult DeleteConfirmed(int id)
        {
            Sobre sobre = db.Sobres.Find(id);

            db.Sobres.Remove(sobre);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #12
0
        private void AExcluir_ServerClick(object sender, EventArgs e)
        {
            Sobre sobre = usuario.Sobre.Where(s => s.id == Convert.ToInt32(hiddenAlteracao.Value)).Single();

            usuario.Sobre.Remove(sobre);
            bd.Entry(sobre).State = EntityState.Deleted;
            bd.SaveChanges();
        }
コード例 #13
0
        public DatosSobre(Sobre sobre)
        {
            InitializeComponent();
            this.sobre = sobre;

            //Relleno los campos con los atributos de la mercancia recibida
            RellenarCampos();
        }
コード例 #14
0
ファイル: Home.cs プロジェクト: lucasgmagalhaes/cms-app
        public Home()
        {
            InitializeComponent();
            this.grafoService    = DependencyFactory.Resolve <IGrafoService>();
            this.aulaService     = DependencyFactory.Resolve <IAulaService>();
            this.dataBaseService = DependencyFactory.Resolve <IDataBaseService>();

            try
            {
                Configuracoes.CarregarInfosArquivo();
                this.IniciarConexaoBanco();
            }
            catch
            {
                DialogResult resultado = MessageBox.Show("Falha na leitura do arquivo de configuração. " +
                                                         "Deseja abrir as configurações agora ?", "Config file", MessageBoxButtons.YesNo,
                                                         MessageBoxIcon.Question);
                if (resultado == DialogResult.Yes)
                {
                    this.configuracoes.ShowDialog();
                }
                else
                {
                    return;
                }
            }

            try
            {
                this.login           = new Login();
                this.sobre           = new Sobre();
                this.buscarUsuario   = new BuscaUsuario();
                this.cadastroUsuario = new FormUsuario(0);
                this.editarUsuario   = new FormEditarUsuario();
                this.buscarPerfil    = new BuscarPerfil();
                this.formperfil      = new FormEditarPerfil();

                this.login.FormClosed         += Login_FormClosed;
                this.editarUsuario.FormClosed += EditarUsuario_FormClosed;
                this.periodos    = new HashSet <string>();
                this.materias    = new HashSet <string>();
                this.professores = new HashSet <string>();
                this.dias        = new HashSet <string>();
                this.horarios    = new HashSet <string>();

                this.AcoesLogout();
            }
            catch
            {
                DialogResult resultado = MessageBox.Show("Houve um problema na abertura do sistema. conecte ao banco e abra o aplicativo novamente", "Config file",
                                                         MessageBoxButtons.OK, MessageBoxIcon.Question);
                this.Close();
            }

            this.btnCadastrar.Visible     = false;
            this.btnBuscarUsuario.Visible = false;
            this.btnPerfil.Visible        = false;
        }
        /// <summary>
        /// El metodo permite cargar los vehiculos que se le asocian a un Sobre
        /// esta carga es externa al sistema, y lo realizamos de esta forma para disminuir la complejidad del sistema.
        /// </summary>
        /// <param name="nuevoSobre"></param>
        private static void cargarVehiculos(Sobre nuevoSobre)
        {
            List <Vehiculo> listaVehiculos = new List <Vehiculo>();

            listaVehiculos.Add(new Moto("yamaha", DateTime.Now, 700000, 500, 2));
            listaVehiculos.Add(new Moto("honda", DateTime.Now, 500000, 400, 2));
            listaVehiculos.Add(new Avion("Aerobus920", DateTime.Now, 2000000, 10));

            //nuevoSobre.AsociarVehiculo(listaVehiculos);
        }
コード例 #16
0
 public ActionResult Edit([Bind(Include = "CodSobre,Titulo,Descricao,Body,Type")] Sobre sobre)
 {
     if (ModelState.IsValid)
     {
         db.Entry(sobre).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(sobre));
 }
コード例 #17
0
        public ModificarSobre(Sobre sobre, AccesoADatos.ADSobre sobreBD, ABMMercancia mainPage)
        {
            InitializeComponent();
            this.sobre    = sobre;
            this.sobreBD  = sobreBD;
            this.mainPage = mainPage;

            //Relleno los campos con los atributos del vehiculo recibido
            RellenarCampos();
        }
コード例 #18
0
        public async Task <bool> Atualizar(Sobre sobre)
        {
            if (!ExecutarValidacao(new SobreValidacao(), sobre))
            {
                return(false);
            }
            await _sobreRepositorio.Atualizar(sobre);

            return(true);
        }
コード例 #19
0
        public ActionResult Create([Bind(Include = "CodSobre,Titulo,Descricao,Body,Type")] Sobre sobre)
        {
            if (ModelState.IsValid)
            {
                db.Sobres.Add(sobre);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(sobre));
        }
コード例 #20
0
        /// <summary>
        /// Ejecuta una serie de tareas
        /// </summary>
        /// <param name="parametros"></param>
        private void EjecutarTareas(object parametros)
        {
            CFE cfe = parametros as CFE;
            CAE cae = AdminEventosUI.caePrueba;

            ObtenerFirmaDigital();
            ObtenerUrlWebService();

            cfe.CodigoSeguridad = CrearCertificado(cfe);
            //cfe.CodigoSeguridad = ObtenerCodigoSeguridad(cfe.TipoCFEInt + "" + cfe.SerieComprobante + "" + cfe.NumeroComprobante);

            #region Proceso_WebService
            ActualizarCodSeguridad(cfe);
            #endregion Proceso_WebService

            sobreDgi = CrearSobre(cfe, true);
            //Se genera el archivo xml
            ArchivoXml archXml = new ArchivoXml();
            archXml.generarXml(cfe, cae);
            AlmacenarCFECreado(cfe);
            sobre = CrearSobre(cfe, false);

            double topeUI = Convert.ToDouble(ValorUI.valorUI * 10000, System.Globalization.CultureInfo.InvariantCulture);

            //  if (!FrmEstadoContingencia.estadoContingencia.Equals("Y"))
            //  {
            if ((cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicketContingencia)) ||
                (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicketContingencia)) ||
                (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicketContingencia)))
            {
                if (cfe.TipoModena.Equals("UYU") || cfe.TipoModena.Equals("$"))
                {
                    if (ValorUI.valorUI * 10000 < (cfe.TotalMontoTotal - cfe.TotalIVATasaMinima - cfe.TotalIVATasaBasica))

                    {
                        EnviarSobre(sobre, sobreDgi, cfe, cae);
                    }
                }
                else
                {
                    if (ValorUI.valorUI * 10000 < (cfe.TotalMontoTotal - cfe.TotalIVATasaMinima - cfe.TotalIVATasaBasica) * cfe.TipoCambio)
                    {
                        EnviarSobre(sobre, sobreDgi, cfe, cae);
                    }
                }
            }
            else
            {
                //Enviar sobre a DGI
                EnviarSobre(sobre, sobreDgi, cfe, cae);
            }
            // }
        }
コード例 #21
0
        /// <summary>
        /// Realiza el envio de los sobre por medio del web service de DGI.
        /// </summary>
        /// <param name="sobre"></param>
        public void EnviarSobre(Sobre sobre)
        {
            ParametrosJobWsDGI parametrosJobWsDGI = new ParametrosJobWsDGI(RUTA_CERTIFICADO, CLAVE_CERTIFICADO, URL_ENVIO, URL_CONSULTAS, null, null);

            parametrosJobWsDGI.Sobre    = sobre;
            parametrosJobWsDGI.SobreDgi = sobre;

            //Procesos web service
            ComunicacionDgi comunicacionDGI = new ComunicacionDgi();

            comunicacionDGI.ConsumirWsEnviarSobre(parametrosJobWsDGI);
        }
コード例 #22
0
 //Abre o menu Sobre
 private void toolStripButton2_Click(object sender, EventArgs e)
 {
     if (Application.OpenForms.OfType <Sobre>().Count() > 0)
     {
         MessageBox.Show("Formulario sobre já está aberto!", "Aviso");
     }
     else
     {
         Sobre telaSobre = new Sobre();
         telaSobre.MdiParent = this;
         telaSobre.Show();
     }
 }
コード例 #23
0
        public IActionResult Index()
        {
            Sobre sobre1 = new Sobre()
            {
                Sabe1 = "Javascript ",
                Sabe2 = "HTML5/Css",
                Sabe3 = "C#",
                Sabe4 = "Node",
                Sabe5 = "React",
                Sabe6 = "MySQL/Postgree",
            };

            return(View(sobre1));
        }
コード例 #24
0
        // GET: Sobres/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Sobre sobre = db.Sobres.Find(id);

            if (sobre == null)
            {
                return(HttpNotFound());
            }
            return(View(sobre));
        }
コード例 #25
0
        /// <summary>
        /// Clic en el botón de aceptar.
        /// </summary>
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            frmMantenimientoInconsistenciasDepositos padre = (frmMantenimientoInconsistenciasDepositos)this.Owner;

            Monedas moneda          = (Monedas)cboMoneda.SelectedIndex;
            decimal monto_reportado = nudMontoReportadoSobre.Value;
            decimal monto_real      = nudMontoRealSobre.Value;
            int     numero          = (int)nudNumeroSobre.Value;

            Sobre sobre = new Sobre(numero, monto_reportado, monto_real, moneda);

            padre.agregarSobre(sobre);
            this.Close();
        }
コード例 #26
0
ファイル: SobresDL.cs プロジェクト: edwin2013/SITES
        /// <summary>
        /// Eliminar los datos de un sobre.
        /// </summary>
        /// <param name="s">Objeto Sobre con los datos del sobre a eliminar</param>
        public void eliminaSobre(Sobre s)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("DeleteSobre");

            _manejador.agregarParametro(comando, "@sobre", s.Id, SqlDbType.Int);

            try
            {
                _manejador.ejecutarConsultaActualizacion(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorSobreEliminacion");
            }
        }
 /// <summary>
 /// Quita un avion asociada a un sobre
 /// </summary>
 public void QuitarAvion(Sobre sobre)
 {
     try
     {
         conexion.abrir();
         using (cmd = new MySqlCommand("UPDATE sobres SET fk_idAvionS = null WHERE idSobre=@idSobre", conexion.retornarCN()))
         {
             cmd.Parameters.AddWithValue("@idSobre", sobre.IdMercancia);
             cmd.ExecuteNonQuery();
             conexion.cerrar();
             MessageBox.Show("Vehiculo quitado con éxito");
         }
     }
     catch (Exception ex)
     {
         //Loguear el error
         MessageBox.Show("Error en la consulta" + ex.ToString());
     }
 }
        private void btnAltaSobre_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                //Declaracion de variables para tomar el contenido del formulario
                string contenido      = tbxContenido.Text;
                Double peso           = Convert.ToDouble(tbxPeso.Text);
                bool   asegurado      = Convert.ToBoolean(cbAsegurado.IsChecked);
                bool   largoRecorrido = Convert.ToBoolean(cbLargoRecorrido.IsChecked);

                Sobre nuevoSobre = new Sobre(contenido, asegurado, largoRecorrido, 10, 1, peso);
                sobreBD.AltaSobre(nuevoSobre);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Revise los datos, ingreso algun dato incorrectamente");
                Logger.Warn("No se pudo dar de Mercancia" + ex);
            }
        }
コード例 #29
0
        public Sobre Obter()
        {
            Sobre sobre = new Sobre();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                sobre = bancoDeDados.ObterEntity <Sobre>(bancoDeDados.CriarComando(@"
					select *
					  from (select t.id Id,
								   t.numero Versao,
								   to_char(t.data, 'dd/MM/yyyy') Data,
								   (select to_char(c.valor) from {0}cnf_sistema c where c.campo = 'orgaosigla') || ' - ' ||
								   (select initcap(c.valor) from {0}cnf_sistema c where c.campo = 'orgaonome') Licenciado
							  from {0}lov_controle_versao t
							 order by t.data desc, t.id desc)
					 where rownum = 1"                    , EsquemaBanco));
            }

            return(sobre);
        }
コード例 #30
0
ファイル: SobresDL.cs プロジェクト: edwin2013/SITES
        /// <summary>
        /// Registrar un sobre y ligarlo con una inconsistencia.
        /// </summary>
        /// <param name="s">Objeto Sobre con los datos del sobre</param>
        /// <param name="i">Inconsistencia en un deposito a la cual se ligará el sobre</param>
        public void agregarSobre(ref Sobre s, InconsistenciaDeposito i)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("InsertSobre");

            _manejador.agregarParametro(comando, "@numero", s.Numero, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@monto_reportado", s.Monto_reportado, SqlDbType.Money);
            _manejador.agregarParametro(comando, "@monto_real", s.Monto_real, SqlDbType.Money);
            _manejador.agregarParametro(comando, "@moneda", s.Moneda, SqlDbType.TinyInt);
            _manejador.agregarParametro(comando, "@inconsistencia", i.Id, SqlDbType.Int);

            try
            {
                s.Id = (int)_manejador.ejecutarEscalar(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorSobreRegistro");
            }
        }
コード例 #31
0
ファイル: frmPrincipal.cs プロジェクト: kodoroph/GF-Home
 //Abre o menu Sobre
 private void toolStripButton2_Click(object sender, EventArgs e)
 {
     if (Application.OpenForms.OfType<Sobre>().Count() > 0)
     {
         MessageBox.Show("Formulario sobre já está aberto!", "Aviso");
     }
     else
     {
         Sobre telaSobre = new Sobre();
         telaSobre.MdiParent = this;
         telaSobre.Show();
     }
 }