public static Boolean ModificarPersona(Persona persona, List<int> uniLis)
 {
     bool bandera = true;
     int id = PersonalDao.ModificarPersona(persona);
     if (uniLis.Count != 0 && id != 0)
     {
         BaseDao.Eliminar("Socio_Universidad", id, "Persona_id");
         for (int i = 0; i < uniLis.Count; i++)
         {
             
             if (Socio_UniversidadDao.GuardarSocio_Universidad(uniLis[i], id) == false)
             {
                 BaseDao.Eliminar("Persona", id, "idPersona");
                 BaseDao.Eliminar("Socio_Universidad", id, "Persona_id");
                 return false;
             }
             else {
                 bandera = true;
             }
         }
     }
     else if (id == 0)
     {
         return false;
     }
     return bandera;
 }
        public static int GuardarPersona(Persona persona)
        {
            MySqlCommand comando;
            String cadenaPersona = "Insert into Persona (nombreCompleto,apellidoPaterno,apellidoMaterno,Escolaridad_id,Sexo) values (@nombreCompleto" +
                ",@apellidoPaterno,@apellidoMaterno,@Escolaridad_id,@Sexo)";
            String cadenaPersonaSinEsc = "Insert into Persona (nombreCompleto,apellidoPaterno,apellidoMaterno,Sexo) values (@nombreCompleto" +
                ",@apellidoPaterno,@apellidoMaterno,@Sexo)";
            int id=0;
            try
            {
                ConexionBD.CrearConexion();
                ConexionBD.ConectarConexion();
                ConexionBD.BeginTransaction();
                if (persona.GetIdEscolaridad() != 0)
                {
                    comando = new MySqlCommand(cadenaPersona, ConexionBD.EnviarConexion());
                }
                else {
                    comando = new MySqlCommand(cadenaPersonaSinEsc, ConexionBD.EnviarConexion());
                }
               
                
                comando.Parameters.Add("@nombreCompleto", MySqlDbType.VarChar,200);
                comando.Parameters.Add("@apellidoPaterno", MySqlDbType.VarChar, 45);
                comando.Parameters.Add("@apellidoMaterno", MySqlDbType.VarChar,45);

                if (persona.GetIdEscolaridad()!=0) {
                    comando.Parameters.Add("@Escolaridad_id", MySqlDbType.Int32);
                }
                
                comando.Parameters.Add("@Sexo", MySqlDbType.Enum);


                comando.Parameters["@nombreCompleto"].Value = persona.NombreCompleto;
                comando.Parameters["@apellidoPaterno"].Value = persona.ApellidoPaterno;
                comando.Parameters["@apellidoMaterno"].Value = persona.ApellidoMaterno;
                if (persona.GetIdEscolaridad() !=0)
                {
                    comando.Parameters["@Escolaridad_id"].Value = persona.GetIdEscolaridad();
                }
                
                comando.Parameters["@Sexo"].Value = persona.Sexo;
                comando.ExecuteNonQuery();

                id = (int)(Convert.ToInt64(comando.LastInsertedId));
                ConexionBD.Commit();
            }
            catch (Exception e)
            {
                System.Console.Write(e);
                ConexionBD.Rollback();
                id = 0;
            }
            finally
            {
                ConexionBD.CerrarConexion();
            }
            return id;
        }
 public void ModificarPersona(Persona persona,List<int> uniLis)
 {
     Boolean resultado;
     resultado = PersonaDelegate.ModificarPersona(persona,uniLis);
     if (resultado == true)
     {
         com.setMensaje("La modificacion fue exitoso");
     }
     else
     {
         com.setMensaje("No se logro la modificacion");
     }
 }
        public void GuardarPersona(Persona persona,List<int> uniLis)
        {
            Boolean resultado;
            resultado = PersonaDelegate.GuardarPersona(persona,uniLis);
            if (resultado == true)
            {
                com.setMensaje("El registro fue exitoso");
            }
            else
            {
                com.setMensaje("No se logro el registro");
            }

        }
        public static int ModificarPersona(Persona persona)
        {
            MySqlCommand comando;
            String cadenaPersona = "Update Persona set nombreCompleto = @nombreCompleto, apellidoPaterno = @apellidoPaterno, apellidoMaterno = @apellidoMaterno,"+
                " Escolaridad_id = @Escolaridad_id, Sexo = @Sexo where idPersona = @idPersona";

            int id = 0;
            try
            {
                ConexionBD.CrearConexion();
                ConexionBD.ConectarConexion();
                ConexionBD.BeginTransaction();
                comando = new MySqlCommand(cadenaPersona, ConexionBD.EnviarConexion());

                comando.Parameters.Add("@idPersona", MySqlDbType.Int32);
                comando.Parameters.Add("@nombreCompleto", MySqlDbType.VarChar, 200);
                comando.Parameters.Add("@apellidoPaterno", MySqlDbType.VarChar, 45);
                comando.Parameters.Add("@apellidoMaterno", MySqlDbType.VarChar, 45);
                comando.Parameters.Add("@Escolaridad_id", MySqlDbType.Int32);
                comando.Parameters.Add("@Sexo", MySqlDbType.Enum);

                comando.Parameters["@idPersona"].Value = persona.IdPersona;
                comando.Parameters["@nombreCompleto"].Value = persona.NombreCompleto;
                comando.Parameters["@apellidoPaterno"].Value = persona.ApellidoPaterno;
                comando.Parameters["@apellidoMaterno"].Value = persona.ApellidoMaterno;
                if (persona.GetIdEscolaridad() != 0)
                {
                    comando.Parameters["@Escolaridad_id"].Value = persona.GetIdEscolaridad();
                }
                else {
                    comando.Parameters["@Escolaridad_id"].Value = null;
                }

                comando.Parameters["@Sexo"].Value = persona.Sexo;
                comando.ExecuteNonQuery();

                id = persona.IdPersona;
                ConexionBD.Commit();
            }
            catch (Exception e)
            {
                System.Console.Write(e);
                ConexionBD.Rollback();
                id = 0;
            }
            finally
            {
                ConexionBD.CerrarConexion();
            }
            return id;
        }
        private static List<Object> DescomponerPersonas(MySqlDataReader personaBD)
        {
            List<Object> listaPersona = new List<Object>();
            while (personaBD.Read())
            {
                Persona persona = new Persona();
                persona.IdPersona = personaBD.GetInt32(0);
                persona.NombreCompleto = personaBD.GetString(1);
                persona.ApellidoPaterno = personaBD.GetString(2);
                if (personaBD.IsDBNull(3))
                {
                    persona.ApellidoMaterno = "";
                }
                else {
                    persona.ApellidoMaterno = personaBD.GetString(3);
                }
                if (personaBD.IsDBNull(5))
                {
                    persona.Sexo = ' ';
                }
                else
                {
                    persona.Sexo = personaBD.GetChar(5);
                }


                listaPersona.Add(persona);
            }
            return listaPersona;
        }
        public static Persona ContruccionPersona(List<Object> personaLista, String almacenamiento)
        {
            Persona persona = new Persona();
            if (almacenamiento == "Guardar")
            {
                persona.NombreCompleto = (String) personaLista[0];
                persona.ApellidoPaterno = (String)personaLista[1];
                persona.ApellidoMaterno = (String)personaLista[2];
                persona.SetIdEscolaridad((int)personaLista[3]);
                persona.Sexo = (char)personaLista[4];

            }
            else
            {
                persona.IdPersona = (int)personaLista[0];
                persona.NombreCompleto = (String)personaLista[1];
                persona.ApellidoPaterno = (String)personaLista[2];
                persona.ApellidoMaterno = (String)personaLista[3];
                persona.SetIdEscolaridad((int)personaLista[4]);
                persona.Sexo = (char)personaLista[5];
            }
            return persona;
        }
 public static Boolean ModificarPersona(Persona persona, List<int> uniLis)
 {
     return PersonaFacade.ModificarPersona(persona, uniLis);
 }
 public static Boolean GuardarPersona(Persona persona, List<int> uniLis)
 {
     return PersonaFacade.GuardarPersona(persona, uniLis);
 }