/// <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); }