Example #1
0
        /// <summary>
        /// Metodo que elimina a una persona y a todas sus mascotas de la bbdd. Habria que hacerlo con transaccion(Si falla eliminar alguna masota, ninguna accion debe realizarse),
        /// pero dado el sentido del ejercicio, no lo complicaremos.
        /// </summary>
        /// <param name="persona">id de la persona a eliminar de la bbdd</param>
        /// <returns>true si la operacion fue correcta, false en caso contrario</returns>
        public Boolean EliminarPersona(int persona)
        {
            Boolean opCorrecta = false;
            //Creo un helper de mascotas para eliminar todas las mascotas de esa persona.
            MascotaDal helperMascotas = new MascotaDal();

            try
            {
                //obtengo la persona de la bbdd, para obtener sus mascotas
                Persona p = GetPersonaPorId(persona);
                foreach (Mascota m in p.ListaMascotas)
                {
                    //Voy eliminando las mascotas de la tabla mascotas que pertencen a esa persona
                    helperMascotas.EliminarMascota(m.IdMascota);
                }

                //Creo el comando para eliminar a la persona
                SqlCommand comando = new SqlCommand("delete from personas where idpersona=@id");

                //Establezco el parametro id del comando.
                SqlParameter parametro1 = new SqlParameter("@id", persona);
                parametro1.SqlDbType = SqlDbType.Int;
                comando.Parameters.Add(parametro1);

                DataBaseHelper helper = new DataBaseHelper();

                //Ejecuto la instruccion
                opCorrecta = helper.EjecutaNoQuery(comando);
            }
            catch (SqlException e)
            {
                throw e;
            }

            //devuelvo el resultado de la operacion
            return(opCorrecta);
        }