/// <summary>
 /// elimina una escuela
 /// </summary>
 /// <param name="dato"></param>
 public void eliminar(Escuela dato)
 {
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         MySqlCommand comando = new MySqlCommand("sp_escuela_DELETE");
         comando.CommandType = CommandType.StoredProcedure;
         comando.Parameters.AddWithValue("p_idEscuela", dato.idEscuela);
         db.executeNonQuery(comando);
     }
 }
  /// <summary>
 /// elimina una aula
 /// </summary>
 /// <param name="dato"></param>
 public void eliminar(Escuela dato)
 {
     if (this.existe(dato))
     {
         this.escuelaDao.eliminar(dato);
     }
     else
     {
         throw new Exception("No existe el registro.");
     }
 }
        /// <summary>
        /// crea una aula nuevo
        /// </summary>
        /// <param name="dato"></param>
        public void nuevo(Escuela dato)
        {

            if (!this.existe(dato))
            {
                this.escuelaDao.nuevo(dato);
            }
            else
            {
                throw new Exception("Ya existe el registro.");
            }
        }
 /// <summary>
 /// modifica una escuela
 /// </summary>
 /// <param name="dato"></param>        
 public void modificar(Escuela dato)
 {
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         MySqlCommand comando = new MySqlCommand("sp_escuela_UPDATE");
         comando.CommandType = CommandType.StoredProcedure;
         comando.Parameters.AddWithValue("p_idEscuela", dato.idEscuela);
         comando.Parameters.AddWithValue("p_nombre", dato.nombre);
         comando.Parameters.AddWithValue("p_director", dato.director);
         comando.Parameters.AddWithValue("p_grado", dato.grado);
         comando.Parameters.AddWithValue("p_identificacion", dato.identificacion);
         //comando.Parameters.AddWithValue("fechaCreacion", DateTime.Today);
         //comando.Parameters.AddWithValue("fechaModificacion", DateTime.Today);
         //comando.Parameters.AddWithValue("usuarioCreacion",pUsuario);
         comando.Parameters.AddWithValue("p_usuarioModificacion", dato.usuarioModificacion);
         comando.Parameters.AddWithValue("p_estado", dato.estado);
         db.executeNonQuery(comando);
     }
 }
        /// <summary>
        /// crea una escuela nuevo
        /// </summary>
        /// <param name="dato"></param>
        /// Se crea un dato de tipo Escuela
        public void nuevo(Escuela dato)
        {
            using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
            {
                //Agregamos la instruccion con el stored procedure
                MySqlCommand comando = new MySqlCommand("sp_escuela_INSERT");
                comando.CommandType = CommandType.StoredProcedure;

                //comando.Parameters.AddWithValue("p_idEscuela", idEscuela);
                comando.Parameters.AddWithValue("p_nombre", dato.nombre);
                comando.Parameters.AddWithValue("p_director", dato.director);
                comando.Parameters.AddWithValue("p_grado", dato.grado);
                comando.Parameters.AddWithValue("p_identificacion", dato.identificacion);
                //comando.Parameters.AddWithValue("p_fechaCreacion", DateTime.Today);
                //comando.Parameters.AddWithValue("p_fechaModificacion", DateTime.Today);
                comando.Parameters.AddWithValue("p_usuarioCreacion", dato.usuarioCreacion);
                //comando.Parameters.AddWithValue("p_usuarioModificacion", pUsuario);
                comando.Parameters.AddWithValue("p_estado", dato.estado);
                db.executeNonQuery(comando);
            }
        }
 /// <summary>
 /// consulta una Escuela
 /// </summary>
 /// <param name="dato"></param>
 /// <returns></returns>
 public Escuela consultarId(Escuela dato)
 {
     return this.escuelaDao.consultarId(dato);
 }
 /// <summary>
 /// verifica si existe una aula
 /// </summary>
 /// <param name="dato"></param>
 /// <returns>TRUE si existe FALSE en caso contrario</returns>
 public bool existe(Escuela dato)
 {
     return this.escuelaDao.existe(dato);
 }
        /// <summary>
        /// actualiza un registro
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            try
            {
                Escuela escuela = new Escuela();
                //llena el objeto con los valores
                escuela.idEscuela = Int32.Parse(e.NewValues["idEscuela"].ToString());
                escuela.nombre = e.NewValues["nombre"].ToString();
                escuela.director = e.NewValues["director"].ToString();
                escuela.grado = e.NewValues["grado"].ToString();
                escuela.identificacion = e.NewValues["identificacion"].ToString();
                escuela.estado = e.NewValues["estado"].ToString();
                escuela.usuarioModificacion = Session["usuario"].ToString();

                escuelaBo.modificar(escuela);//agrega el objeto a la base de datos

                e.Cancel = true;//manejo de execpcion no controlada BUSCAR SOLUCION
                this.ASPxGridView1.CancelEdit();

                this.cargarDatos();//refescar los datos
            }
            catch (Exception ex)
            { 
                Session["errorMessage"] = ex.Message;
            }
        }
        /// <summary>
        /// consulta una Escuela
        /// </summary>
        /// <param name="dato"></param>
        /// <returns></returns>
        public Escuela consultarId(Escuela dato)
        {

            using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
            {
                MySqlCommand comando = new MySqlCommand("sp_escuela_SELECT_ByID");
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("p_idEscuela", dato.idEscuela);
                //Despues del comando indicar el nombre de la tabla
                DataSet ds = db.executeReader(comando, "escuela");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataRow row = ds.Tables[0].Rows[0];
                    if (!row["idEscuela"].ToString().Equals(""))
                        dato.idEscuela = Int32.Parse(row["idEscuela"].ToString()); 
                    
                    if (!row["nombre"].ToString().Equals(""))
                        dato.nombre = row["nombre"].ToString(); 
                    if (!row["identificacion"].ToString().Equals(""))
                        dato.identificacion = row["identificacion"].ToString();
                    if (!row["grado"].ToString().Equals(""))
                        dato.grado = row["grado"].ToString();
                    if (!row["director"].ToString().Equals(""))
                        dato.director = row["director"].ToString(); 
                    if (!row["estado"].ToString().Equals(""))
                        dato.estado = row["estado"].ToString();

                    //Para indicar los datos del usuario
                    if (!row["usuarioCreacion"].ToString().Equals(""))
                    dato.usuarioCreacion = row["usuarioCreacion"].ToString();

                    if (!row["usuarioModificacion"].ToString().Equals(""))
                    dato.usuarioModificacion = row["usuarioModificacion"].ToString();
                    
                    //Indicamos los valores de las fechas
                    if (!row["fechaCreacion"].ToString().Equals(""))
                        dato.fechaCreacion = DateTime.Parse(row["fechaCreacion"].ToString());
                    
                    if (!row["fechaModificacion"].ToString().Equals(""))
                        dato.fechaModificacion = DateTime.Parse(row["fechaModificacion"].ToString());
                }
                else
                {
                    dato = null;
                }
                return dato;
            }
        }
 /// <summary>
 /// verifica si existe una  escuela
 /// </summary>
 /// <param name="dato"></param>
 /// <returns>TRUE si existe FALSE en caso contrario</returns>
 public bool existe(Escuela dato)
 {
     Escuela objeto = new Escuela();
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         MySqlCommand comando = new MySqlCommand("sp_escuela_SELECT_ByID");
         comando.CommandType = CommandType.StoredProcedure;
         comando.Parameters.AddWithValue("p_idEscuela", dato.idEscuela);
         DataSet ds = db.executeReader(comando, "escuela");
         if (ds.Tables[0].Rows.Count > 0)
         {
             return true;
         }
         else
         {
             return false;
         }
     } 
 }
         /// <summary>
 /// consulta todas las aulas
 /// </summary>
 /// <returns>List</returns>
 public List<Escuela> consultarTodos()
 {
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         List<Escuela> lista = new List<Escuela>();
         MySqlCommand comando = new MySqlCommand("sp_escuela_SELECT_all");
         comando.CommandType = CommandType.Text;
         //indicamos el nombre de la tabla
         DataSet ds = db.executeReader(comando, "escuela");
         foreach (DataRow row in ds.Tables[0].Rows)
         {
             Escuela dato = new Escuela();
             if (!row["idEscuela"].ToString().Equals(""))
                 dato.idEscuela = Int32.Parse(row["idEscuela"].ToString());
             if (!row["nombre"].ToString().Equals(""))
                 dato.nombre = row["nombre"].ToString();
             if (!row["identificacion"].ToString().Equals(""))
                 dato.identificacion = row["identificacion"].ToString();
             if (!row["grado"].ToString().Equals(""))
                 dato.grado = row["grado"].ToString();
             if (!row["director"].ToString().Equals(""))
                 dato.director = row["director"].ToString();
             if (!row["estado"].ToString().Equals(""))
                 dato.estado = row["estado"].ToString();
             //Se deben de indicar los valores del usuario
             if (!row["usuarioCreacion"].ToString().Equals(""))
                 dato.usuarioCreacion = row["usuarioCreacion"].ToString();
             if (!row["usuarioModificacion"].ToString().Equals(""))
                 dato.usuarioModificacion = row["usuarioModificacion"].ToString();
             //Se deben de indicar los valores de la fecha
             if (!row["fechaCreacion"].ToString().Equals(""))
                 dato.fechaCreacion = DateTime.Parse(row["fechaCreacion"].ToString());
             if (!row["fechaModificacion"].ToString().Equals(""))
                 dato.fechaModificacion = DateTime.Parse(row["fechaModificacion"].ToString());
             lista.Add(dato);
         }
         return lista;
     }
 }