示例#1
0
        /// <summary>
        /// Esta función inicializa las clases.
        /// Abre una escucha en el puerto 5555 y setea el timer para chequear el buffer.
        /// Asigna un evento referenciando al método ObjetoRecibido
        /// </summary>
        public TableroServidor()
        {
            InitializeComponent();
            escuchar = new Escuchar();
            enviar   = new Enviar();
            mazo     = new Mazo();
            escuchar.Start(5555);
            timerCheckBuffer.Start();
            escuchar.objetoRecibido += new Escuchar.Recibido(ObjetoRecibido);
            listLog.Items.Insert(0, "Servidor iniciado.");
            panelReiniciarRanking.Parent    = pictureBox1;
            panelReiniciarRanking.BackColor = Color.Transparent;
            Serializador serializador = new Serializador();

            puertosJugadores = new Dictionary <string, int>();
            try
            {
                dineroJugadores = serializador.Deserializar();
                ActualizarLog("Ranking encontrado.");
            }
            catch
            {
                ActualizarLog("Ranking no encontrado, se creará uno nuevo.");
                dineroJugadores = new Dictionary <string, int>();
            }
        }
        public bool EnviarExternoPreValidar(Enviar enviarCampos)
        {
            if (enviarCampos.RemetenteSetor.Id <= 0)
            {
                Validacao.Add(Msg.SetorRemetenteObrigatorio);
                return(Validacao.EhValido);
            }

            if (enviarCampos.Remetente == null || enviarCampos.Remetente.Id <= 0)
            {
                Validacao.Add(Msg.RemetenteObrigatorio);
            }

            if (enviarCampos.RemetenteSetor.Id <= 0)
            {
                Validacao.Add(Msg.SetorRemetenteObrigatorio);
                return(Validacao.EhValido);
            }

            if (enviarCampos.ObjetivoId <= 0)
            {
                Validacao.Add(Msg.ObjetivoObrigratorio);
            }

            if (enviarCampos.OrgaoExterno.Id <= 0)
            {
                Validacao.Add(Msg.OrgaoExternoObrigratorio);
            }

            return(Validacao.EhValido);
        }
示例#3
0
        public Login()
        {
            InitializeComponent();
            FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

            escuchar2 = new Escuchar();
            enviar2   = new Enviar();
            escuchar2.Start(7777);
            escuchar2.objetoRecibido += new Escuchar.Recibido(VisualizarRanking);
            escuchar2.EsperarRespuesta();

            #region seteo los botones transparentes
            panelRanking.Parent          = fondoLogin;
            panelSalir.Parent            = fondoLogin;
            panelInstrucciones.Parent    = fondoLogin;
            panelAcercaDe.Parent         = fondoLogin;
            panelRanking.BackColor       = Color.Transparent;
            panelSalir.BackColor         = Color.Transparent;
            panelInstrucciones.BackColor = Color.Transparent;
            panelAcercaDe.BackColor      = Color.Transparent;
            #endregion

            //Carga la fuente personalizada
            PrivateFontCollection pfc = new PrivateFontCollection();
            pfc.AddFontFile("..\\..\\Resources\\Comfortaa-Bold.ttf");
            //Maximos caracteres en el nombre de usuario
            txtUser.MaxLength = 9;
            txtUser.Font      = new Font(pfc.Families[0], 16, FontStyle.Bold);
        }
示例#4
0
 public TableroServidor()
 {
     InitializeComponent();
     escuchar = new Escuchar();
     enviar   = new Enviar();
     mazo     = new Mazo();
     escuchar.Start(5555);
     timerCheckBuffer.Start();
     escuchar.objetoRecibido += new Escuchar.Recibido(ObjetoRecibido);
     listLog.Items.Insert(0, "Servidor iniciado.");
 }
示例#5
0
 public TableroJugador()
 {
     InitializeComponent();
     enviar       = new Enviar();
     ventanaLogin = new Login();
     ventanaLogin.Show();
     ventanaLogin.enterPresionado += new Login.ElegirNombre(SetNombre);
     escuchar = new Escuchar();
     escuchar.objetoRecibido += new Escuchar.Recibido(ObjetoRecibido);
     escuchar.Start(6666);
     timerListen.Start();
 }
示例#6
0
 /// <summary>
 /// Este constructor aparte de inicializar los atributos, muestra el formulario secundario
 /// de conexión, comienza a escuchar cada un segundo y declara a los manejadores de eventos
 /// </summary>
 public Tablero_Principal_Servidor()
 {
     InitializeComponent();
     enviar          = new Enviar();
     escuchar        = new Escuchar();
     tableroConexion = new Tablero_Conexion("del Equipo Rojo");
     escuchar.Comenzar(4000);
     timerCheckBuffer.Start();
     tableroConexion.Cerrar += new Tablero_Conexion.CerrarFormEventHandler(Tablero_FormClosing);
     tableroConexion.PasarInformacionJuego += new Tablero_Conexion.PasarInformacionEventHandler(ConfiguracionInicial);
     escuchar.objetoRecibido += new Escuchar.Recibido(RecibirInformacion);
     tableroConexion.Show();
 }
示例#7
0
    protected void Button2_Click(object sender, EventArgs e)
    {
        Enviar classe = new Enviar();
        string file   = FileUpload1.PostedFile.FileName;

        classe.email(txtemail.Text, txtasunto.Text, txtmensaje.Text, file);

        if (Enviar.teste == true)
        {
            Label1.Text      = "Se envio correctamente";
            Label1.ForeColor = System.Drawing.Color.Red;
        }
        else
        {
            Label1.Text      = "No se pudo enviar";
            Label1.ForeColor = System.Drawing.Color.Red;
        }
    }
        public bool EnviarPreValidar(Enviar enviarCampos)
        {
            if (enviarCampos.RemetenteSetor.Id <= 0)
            {
                Validacao.Add(Msg.SetorRemetenteObrigatorio);
                return(Validacao.EhValido);
            }
            else
            {
                SetorSelecionadoMesmoTipoTramitacao(enviarCampos.TramitacaoTipo, enviarCampos.RemetenteSetor.Id);
            }

            if (enviarCampos.Remetente == null || enviarCampos.Remetente.Id <= 0)
            {
                Validacao.Add(Msg.RemetenteObrigatorio);
            }

            if (!Validacao.EhValido)
            {
                return(Validacao.EhValido);
            }

            if (enviarCampos.ObjetivoId <= 0)
            {
                Validacao.Add(Msg.ObjetivoObrigratorio);
            }

            if (enviarCampos.DestinatarioSetor.Id <= 0)
            {
                Validacao.Add(Msg.SetorDestinatarioObrigratorio);
            }

            if (enviarCampos.Remetente.Id == enviarCampos.Destinatario.Id && enviarCampos.RemetenteSetor.Id == enviarCampos.DestinatarioSetor.Id)
            {
                Validacao.Add(Msg.RemetenteDestinatarioIguais);
            }

            return(Validacao.EhValido);
        }
示例#9
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseBrowserLink();
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute("defaut", "{controller=Home}/{action=Index}/{id?}");
            });

            e = new Enviar();
            Task tarea1 = new Task(new Action(e.run));

            tarea1.Start();
        }
示例#10
0
        public TableroJugador()
        {
            InitializeComponent();
            enviar       = new Enviar();
            ventanaLogin = new Login();
            ventanaLogin.Show();

            #region Seteando las fuentes privadas
            PrivateFontCollection pfc = new PrivateFontCollection();
            pfc.AddFontFile("..\\..\\Resources\\Comfortaa-Bold.ttf");
            lblYo.Font          = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblRival.Font       = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblPuntos.Font      = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblPuntosRival.Font = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblDinero1.Font     = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblDinero2.Font     = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblDineroMio.Font   = new Font(pfc.Families[0], 14, FontStyle.Bold);
            lblDineroRival.Font = new Font(pfc.Families[0], 14, FontStyle.Bold);
            #endregion

            //Seteando los botones transparentes
            panelPedirOtra.Parent    = pictureBox1;
            panelPlantarse.Parent    = pictureBox1;
            panelPedirOtra.BackColor = Color.Transparent;
            panelPlantarse.BackColor = Color.Transparent;

            juego       = new Juego(0);
            puntosRival = 0;
            yaEsMiTurno = false;
            ventanaLogin.enterPresionado += new Login.ElegirNombre(SetNombre);

            escuchar = new Escuchar();
            escuchar.objetoRecibido += new Escuchar.Recibido(ObjetoRecibido);
            escuchar.Start(6666);
            timerListen.Start();
        }
示例#11
0
        private void AtenderServidor()//Funcion que atiende al servidor. Dependiendo del codigo que reciba hara unas acciones.
        {
            while (true)
            {
                byte[] msg2 = new byte[80];
                try
                {
                    server.Receive(msg2);
                }
                catch (SocketException ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                }

                string[] mensaje = Encoding.ASCII.GetString(msg2).Split(':');

                int    codigo    = Convert.ToInt32(mensaje[0]);
                string contenido = mensaje[1].Split('\0')[0];


                switch (codigo)
                {
                case 1:
                    if (contenido == "0")
                    {
                        DelegadoInicioSesion delegadoStart = new DelegadoInicioSesion(DelegarInicioSesion);
                        Enviar.Invoke(delegadoStart);
                        MessageBox.Show("Sesion Iniciada");
                    }
                    else
                    {
                        string mensaje2 = "0/" + User.Text;
                        byte[] msg3     = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                        server.Send(msg3);
                        server.Shutdown(SocketShutdown.Both);
                        server.Close();
                        MessageBox.Show("El nombre ya está registrado");
                        Atender.Abort();
                    }
                    break;

                case 2:
                    if (contenido == "0")
                    {
                        DelegadoInicioSesion delegadoStart = new DelegadoInicioSesion(DelegarInicioSesion);
                        Enviar.Invoke(delegadoStart);
                        MessageBox.Show("Sesion Iniciada");
                    }
                    else
                    {
                        string mensaje2 = "0/" + User.Text;
                        byte[] msg3     = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                        server.Send(msg3);
                        server.Shutdown(SocketShutdown.Both);
                        server.Close();
                        MessageBox.Show("El nombre y/o la contraseña son incorrectos.");
                        Atender.Abort();
                    }
                    break;

                case 3:
                    if (contenido == "NoEncontrado")
                    {
                        MessageBox.Show("No se ha encontrado el jugador");
                    }
                    else if (contenido != "")
                    {
                        MessageBox.Show("Número de turnos:" + contenido);
                    }
                    else
                    {
                        MessageBox.Show("Error");
                    }
                    break;

                case 4:
                    if (contenido == "NoEncontrado")
                    {
                        MessageBox.Show("No se ha encontrado la partida");
                    }
                    else if (contenido != "")
                    {
                        MessageBox.Show("Jugadores:" + contenido);
                    }
                    else
                    {
                        MessageBox.Show("Error");
                    }
                    break;

                case 5:
                    if (contenido == "NoEncontrado")
                    {
                        MessageBox.Show("No se ha encontrado el jugador");
                    }
                    else if (contenido != "")
                    {
                        MessageBox.Show("Número de turnos:" + contenido);
                    }
                    else
                    {
                        MessageBox.Show("Error");
                    }
                    break;

                case 6:
                    DelegadoListaConectados delegadoLista = new DelegadoListaConectados(RellenarListaConectados);
                    dataGridView1.Invoke(delegadoLista, new object[] { contenido });
                    break;

                case 7:
                    DelegadoInvitacionRecibida delegadoInv = new DelegadoInvitacionRecibida(DelegarInvitacionRecibida);
                    Invitacion.Invoke(delegadoInv, new object[] { contenido });
                    UsuarioInvita = contenido;
                    break;

                case 8:
                    Aceptados.Add(contenido);
                    Respuestas.Add(contenido);
                    MessageBox.Show(contenido + " ha aceptado la partida");
                    if (Invitaciones == Aceptados.Count)
                    {
                        MessageBox.Show("Todos los jugadores han aceptado la partida");
                        Empezar_Partida();
                        Respuestas.Clear();
                        Aceptados.Clear();
                    }
                    else if ((Invitaciones == Respuestas.Count()) && (Respuestas.Count != Aceptados.Count()))
                    {
                        MessageBox.Show("Algun jugador ha rechazado la partida");
                        DelegadoInvitacionRechazada delegadorech1 = new DelegadoInvitacionRechazada(DelegarInvitacionRechazada);
                        Invite.Invoke(delegadorech1);
                        Invitaciones = 0;
                        Respuestas.Clear();
                        Aceptados.Clear();
                    }
                    break;

                case 9:
                    MessageBox.Show(contenido + " ha rechazado la partida");
                    Respuestas.Add(contenido);
                    if ((Invitaciones == Respuestas.Count()) && (Respuestas.Count != Aceptados.Count()))
                    {
                        DelegadoInvitacionRechazada delegadorech2 = new DelegadoInvitacionRechazada(DelegarInvitacionRechazada);
                        Invite.Invoke(delegadorech2);
                        MessageBox.Show("Algun jugador ha rechazado la partida");
                        Invitaciones = 0;
                        Respuestas.Clear();
                        Aceptados.Clear();
                    }
                    break;

                case 10:
                    IDChat = Convert.ToInt32(contenido);
                    MessageBox.Show("Iniciando partida " + IDChat);
                    DelegadoInvitacionRechazada delegadorech3 = new DelegadoInvitacionRechazada(DelegarInvitacionRechazada);
                    Invite.Invoke(delegadorech3);
                    string mensaje3 = "13/" + IDChat + "," + User.Text + "," + EquipoBatallaPropio.GetPokemon(0).Nombre + "," + EquipoBatallaPropio.GetPokemon(1).Nombre + "," + EquipoBatallaPropio.GetPokemon(2).Nombre;
                    byte[] msg      = System.Text.Encoding.ASCII.GetBytes(mensaje3);
                    server.Send(msg);
                    break;

                case 11:
                    int ID = Convert.ToInt32(contenido.Split('-')[0]);
                    contenido = contenido.Split('-')[1];
                    int IDindex = BuscarID(ID);
                    Chats[IDindex].EscribirMensaje(contenido);
                    break;

                case 12:
                    ID = Convert.ToInt32(contenido.Split('-')[0]);
                    string usuario = contenido.Split('-')[1];
                    int    salida  = Convert.ToInt32(contenido.Split('-')[2]);
                    IDindex = BuscarID(ID);
                    if (salida == 1)
                    {
                        MessageBox.Show("Partida finalizada");
                    }
                    else
                    {
                        MessageBox.Show("El usuario " + usuario + " ha abandonado la partida");
                    }
                    Chats[IDindex].AbandonarPartida();
                    break;

                case 13:
                    string[] TuEquipo = contenido.Split(',');
                    SetEquipoPropio(TuEquipo[0], TuEquipo[1], TuEquipo[2]);
                    DelegadoActivarInvitacion delegadoInvite = new DelegadoActivarInvitacion(DelegarActivarInvitacion);
                    Invite.Invoke(delegadoInvite);
                    break;

                case 14:
                    string[] content = contenido.Split('-');
                    int      IDa     = Convert.ToInt32(content[0]);
                    contenido = content[1];
                    content   = contenido.Split(',');
                    bool OponenteRecibido = false;
                    if (content[0] != User.Text)
                    {
                        SetEquipoOponente(content[1], content[2], content[3]);
                        Oponente         = content[0];
                        OponenteRecibido = true;
                    }
                    if (OponenteRecibido == true)
                    {
                        ThreadStart ts2   = delegate { AbrirChat(); };
                        Thread      forms = new Thread(ts2);
                        forms.Start();
                    }
                    break;

                case 15:
                    ID        = Convert.ToInt32(contenido.Split('-')[0]);
                    contenido = contenido.Split('-')[1];
                    IDindex   = BuscarID(ID);
                    Chats[IDindex].bt.RecibirOrden(contenido);
                    break;

                case 16:
                    if (contenido == "0")
                    {
                        MessageBox.Show("Usuario Eliminado");
                        DelegadoDesconexion delegadoStart = new DelegadoDesconexion(DelegarDesconexion);
                        Desconexion.Invoke(delegadoStart);
                    }
                    else
                    {
                        MessageBox.Show("No se ha podido eliminar el usuario");
                    }
                    break;

                case 17:
                    ID        = Convert.ToInt32(contenido.Split('-')[0]);
                    contenido = contenido.Split('-')[1];
                    IDindex   = BuscarID(ID);
                    Chats[IDindex].PokemonDebilitadoDelegado(contenido);
                    break;
                }
            }
        }
示例#12
0
        public void TomaConectados(string mensaje)
        {
            Enviar de = new Enviar(PonConectados);

            this.Invoke(de, new object[] { mensaje });
        }
        private async void btn_enviarRcof_Click(object sender, EventArgs e)
        {
            try
            {
                if (dialogC == null)
                {
                    MessageBox.Show("Selecciona un certificado para continuar");
                }
                else if (dialogR == null)
                {
                    MessageBox.Show("Selecciona un RCOF para continuar");
                }
                else
                {
                    CertificadoDigital certificado = new CertificadoDigital();
                    certificado.rut      = txt_rutCertificado.Text;
                    certificado.password = txt_passCertificado.Text;

                    Enviar enviarRcof = new Enviar();
                    enviarRcof.CertificadoDigital = certificado;
                    enviarRcof.RutEmisor          = txt_rutEmisor.Text;
                    enviarRcof.RutReceptor        = txt_rutReceptor.Text;
                    enviarRcof.NumeroResolucion   = int.Parse(txt_numResolucion.Text);
                    enviarRcof.FechaResolucion    = dp_fechaResolucion.Value.ToString("yyyy-MM-dd");
                    if (chbx_produccionSi.Checked)
                    {
                        enviarRcof.Produccion = true;
                    }
                    else
                    {
                        enviarRcof.Produccion = false;
                    }

                    var json           = new JavaScriptSerializer().Serialize(enviarRcof);
                    var fsC            = File.OpenRead(dialogC.FileName);
                    var fsR            = File.OpenRead(dialogR.FileName);
                    var streamContentC = new StreamContent(fsC);
                    var streamContentR = new StreamContent(fsR);

                    HttpClient client             = new HttpClient();
                    MultipartFormDataContent form = new MultipartFormDataContent();
                    //byte[] cert = File.ReadAllBytes(dialog.FileName);
                    var certificadoByte = new ByteArrayContent(await streamContentC.ReadAsByteArrayAsync());
                    certificadoByte.Headers.ContentType        = MediaTypeHeaderValue.Parse("multipart/form-data");
                    certificadoByte.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                    {
                        Name     = "files",
                        FileName = dialogC.SafeFileName
                    };
                    var rcofByte = new ByteArrayContent(await streamContentR.ReadAsByteArrayAsync());
                    rcofByte.Headers.ContentType        = MediaTypeHeaderValue.Parse("multipart/form-data");
                    rcofByte.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                    {
                        Name     = "files",
                        FileName = dialogR.SafeFileName
                    };
                    HttpContent jsonString = new StringContent(json);
                    form.Add(jsonString, "input");
                    form.Add(certificadoByte);
                    form.Add(rcofByte);

                    var pass = Encoding.GetEncoding("ISO-8859-1").GetBytes("api:2318-J320-6378-2229-4600");
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                                                                                               Convert.ToBase64String(pass));
                    HttpResponseMessage response = await client.PostAsync(url, form);

                    response.EnsureSuccessStatusCode();
                    client.Dispose();
                    string sd = await response.Content.ReadAsStringAsync();

                    Resultado resultado = new Resultado();
                    resultado.json     = json;
                    resultado.xml      = sd;
                    resultado.response = response;
                    resultado.Show();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex);
            }
        }
示例#14
0
        //private void PonConectados(string [] trozos)
        //{
        //    int n = Convert.ToInt32(trozos[1]);
        //    int i = 0;
        //    dataGridView1.Rows.Clear();
        //    dataGridView1.Refresh();

        //    while (i < n)
        //    {
        //        if (i < n - 1)
        //        {
        //            dataGridView1.Rows.Add();
        //        }
        //        dataGridView1.Rows[i].Cells[0].Value = trozos[i + 2];
        //        i++;
        //    }
        //}

        private void AtenderServidor()
        {
            while (true)
            {
                //Recibimos la respuesta del servidor
                byte[] msg2 = new byte[80];
                server.Receive(msg2);

                string [] trozos    = Encoding.ASCII.GetString(msg2).Split('/');
                int       numtrozos = trozos.Length;
                int       codigo    = Convert.ToInt32(trozos[0]);
                string    mensaje;
                int       nForm;
                switch (codigo)
                {
                case 1:     //Registra al nuevo usuario
                    mensaje = trozos[1].Split('\0')[0];
                    Enviar de = new Enviar(PonMensaje);
                    this.Invoke(de, new object[] { mensaje });
                    if (mensaje == "Usuario registrado")
                    {
                        ThreadStart ts = delegate { PonerEnMarchaFormulario4(); };
                        Thread      T  = new Thread(ts);
                        T.Start();
                    }

                    break;

                case 2:     //Inicia sesión
                    mensaje = trozos[1].Split('\0')[0];
                    de      = new Enviar(PonMensaje);
                    this.Invoke(de, new object[] { mensaje });
                    if (mensaje == "Usuario iniciado")
                    {
                        ThreadStart ts = delegate { PonerEnMarchaFormulario4(); };
                        Thread      T  = new Thread(ts);
                        T.Start();
                    }
                    else
                    {
                        MessageBox.Show("Vuelve a intentarlo, los datos son incorrectos");
                    }
                    break;

                case 3:     //Consulta el jugador que ganó en menor tiempo
                    mensaje = trozos[1].Split('\0')[0];
                    nForm   = Convert.ToInt32(trozos[1]);
                    mensaje = trozos[2];
                    formularios[nForm].TomaJugador(mensaje);

                    //de = new Enviar(PonMensaje);
                    //this.Invoke(de, new object[] { mensaje });
                    //MessageBox.Show(mensaje);
                    break;

                case 4:     //Consulta el menor tiempo en ganar del jugador "usuario"
                    mensaje = trozos[1].Split('\0')[0];
                    nForm   = Convert.ToInt32(trozos[1]);
                    mensaje = trozos[2];
                    formularios[nForm].TomaTiempo(mensaje);

                    //de = new Enviar(PonMensaje);
                    //this.Invoke(de, new object[] { mensaje });
                    //MessageBox.Show(mensaje);
                    break;

                case 5:     //Consulta el número de partidas ganadas por el jugador "usuario"
                    mensaje = trozos[1].Split('\0')[0];
                    nForm   = Convert.ToInt32(trozos[1]);
                    mensaje = trozos[2];
                    formularios[nForm].TomaPartidas(mensaje);

                    //de = new Enviar(PonMensaje);
                    //this.Invoke(de, new object[] { mensaje });
                    //MessageBox.Show(mensaje);
                    break;

                case 6:     //Notificación lista conectados
                    //EnviarTrozos de1 = new EnviarTrozos(PonConectados);
                    //this.Invoke(de1, new object[] { trozos });
                    mensaje = trozos[2].Split('\0')[0];
                    if (mensaje != "0")
                    {
                        nForm = Convert.ToInt32(trozos[1]);
                        int i = 3;
                        while (i < trozos.Length)
                        {
                            mensaje = mensaje + "/" + trozos[i];
                            i++;
                        }
                        formularios[nForm].TomaConectados(mensaje);
                    }
                    break;

                case 7:     //Recibe invitación del invitador
                    string invitador = trozos[3].Split('\0')[0];
                    nForm = Convert.ToInt32(trozos[1]);
                    string letra = trozos[2];
                    Form2  f2    = new Form2();
                    f2.enviado      += new Form2.Enviar(Ejecutar);
                    f2.textBox1.Text = invitador;
                    f2.textBox2.Text = letra;
                    f2.ShowDialog();
                    if (textBox3.Text == "Rechazada")
                    {
                        string mensaje2 = "7/" + nForm + "/Rechazada/" + invitador;
                        // Enviamos al servidor
                        byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                        server.Send(msg);
                    }
                    else
                    {
                        string mensaje2 = "7/" + nForm + "/Aceptada/" + letra + "/" + invitador;
                        //Enviamos al servidor
                        byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                        server.Send(msg);
                    }
                    break;

                case 8:     //Recibe contestación del invitado
                    mensaje = trozos[3].Split('\0')[0];
                    nForm   = Convert.ToInt32(trozos[1]);
                    if (trozos[2] == "Rechazada")
                    {
                        string invitado = trozos[3];
                        MessageBox.Show(": ha finalizado la partida", invitado);
                    }
                    else
                    {
                        string invitado = trozos[4];
                        letra = trozos[3];
                        Form3 f3 = new Form3();
                        f3.enviado      += new Form3.Enviar(Ejecutar);
                        f3.textBox1.Text = invitado;
                        f3.label8.Text   = letra;
                        f3.ShowDialog();
                        if (textBox3.Text == "Rechazada")
                        {
                            string mensaje2 = "8/" + nForm + "/Rechazada/" + invitado;
                            // Enviamos al servidor
                            byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                            server.Send(msg);
                        }
                        else
                        {
                            string mensaje2 = "8/" + nForm + "/Aceptada/" + letra + "/" + f3.textBox2.Text + "/" + f3.textBox3.Text + "/" + f3.textBox4.Text + "/" + f3.textBox5.Text + "/" + f3.textBox6.Text + "/" + invitado;
                            //Enviamos al servidor
                            byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                            server.Send(msg);
                        }
                    }
                    break;

                case 9:     //recibe contestación del invitador
                    mensaje = trozos[2].Split('\0')[0];
                    nForm   = Convert.ToInt32(trozos[1]);
                    if (trozos[2] == "Rechazada")
                    {
                        string invitador2 = trozos[3];
                        MessageBox.Show(": ha finalizado la partida", invitador2);
                    }
                    else
                    {
                        string invitador2 = trozos[9];
                        letra = trozos[3];
                        Form3 f3 = new Form3();
                        f3.enviado      += new Form3.Enviar(Ejecutar);
                        f3.textBox1.Text = invitador2;
                        f3.label8.Text   = letra;
                        f3.textBox2.Text = trozos[4];
                        f3.textBox3.Text = trozos[5];
                        f3.textBox4.Text = trozos[6];
                        f3.textBox5.Text = trozos[7];
                        f3.textBox6.Text = trozos[8];
                        f3.ShowDialog();
                        if (textBox3.Text == "Rechazada")
                        {
                            string mensaje2 = "8/" + nForm + "/Rechazada/" + invitador2;
                            // Enviamos al servidor
                            byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                            server.Send(msg);
                        }
                        else
                        {
                            string mensaje2 = "8/" + nForm + "/Aceptada/" + letra + "/" + f3.textBox2.Text + "/" + f3.textBox3.Text + "/" + f3.textBox4.Text + "/" + f3.textBox5.Text + "/" + f3.textBox6.Text + "/" + invitador2;
                            //Enviamos al servidor
                            byte[] msg = System.Text.Encoding.ASCII.GetBytes(mensaje2);
                            server.Send(msg);
                        }
                    }
                    break;

                    //case 10: //Elimina al usuario
                    //    mensaje = trozos[1].Split('\0')[0];
                    //    de = new Enviar(PonMensaje);
                    //    this.Invoke(de, new object[] { mensaje });
                    //    break;
                }
            }
        }
        public bool EnviarPreValidar(Enviar enviarCampos)
        {
            if (enviarCampos.RemetenteSetor.Id <= 0)
            {
                Validacao.Add(Msg.SetorRemetenteObrigatorio);
                return(Validacao.EhValido);
            }
            else
            {
                SetorSelecionadoMesmoTipoTramitacao(enviarCampos.TramitacaoTipo, enviarCampos.RemetenteSetor.Id);
            }

            if (enviarCampos.Remetente == null || enviarCampos.Remetente.Id <= 0)
            {
                Validacao.Add(Msg.RemetenteObrigatorio);
            }

            if (!Validacao.EhValido)
            {
                return(Validacao.EhValido);
            }

            if (enviarCampos.ObjetivoId <= 0)
            {
                Validacao.Add(Msg.ObjetivoObrigratorio);
            }

            if (enviarCampos.ObjetivoId == 19)            //Juntada Processo SEP
            {
                if (string.IsNullOrWhiteSpace(enviarCampos.Despacho))
                {
                    Validacao.Add(Msg.DespachoObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(enviarCampos.NumeroAutuacao))
                {
                    Validacao.Add(Msg.NumeroAutuacaoObrigatorio);
                }
            }

            if (enviarCampos.DestinatarioSetor.Id <= 0)
            {
                Validacao.Add(Msg.SetorDestinatarioObrigratorio);
            }

            if (enviarCampos.Remetente.Id == enviarCampos.Destinatario.Id && enviarCampos.RemetenteSetor.Id == enviarCampos.DestinatarioSetor.Id)
            {
                Validacao.Add(Msg.RemetenteDestinatarioIguais);
            }

            if (enviarCampos.DestinatarioSetor.Id == 258)           //Outros
            {
                if (string.IsNullOrWhiteSpace(enviarCampos.DestinoExterno))
                {
                    Validacao.Add(Msg.DestinoExternoObrigatorio);
                }

                if ((enviarCampos.FormaEnvio ?? 0) == 0)
                {
                    Validacao.Add(Msg.FormaEnvioObrigatorio);
                }

                if ((enviarCampos.FormaEnvio == 1 || enviarCampos.FormaEnvio == 2) && string.IsNullOrWhiteSpace(enviarCampos.CodigoRastreio))
                {
                    Validacao.Add(Msg.CodigoRastreioObrigatorio);
                }
            }

            return(Validacao.EhValido);
        }