private void buttonRealizar_Click(object sender, EventArgs e) { Cliente cli2 = (Cliente)listBox1.SelectedItem; lib = (Libro)listBox2.SelectedItem; Cliente cli3; if (cli2 == null) { if (cli == null) { cli3 = null; } else { cli3 = cli; } } else { cli3 = cli2; } if (cli3 == null) { MessageBox.Show("No ha seleccionado ningún cliente"); } else { if (adminCopia.limiteDePrestamos(cli3.Dni)) { if (adminCopia.estadodecliente(cli3.CodigoSocio)) { if (lib == null) { MessageBox.Show("No se ha seleccionado ningún libro"); } else { if (lib.Estado == "Reservado" || lib.Estado == "Disponible") { try { int codigo = int.Parse(textBoxCodigo.Text); Prestamo presta = adminCopia.buscarprestamo(codigo); if (presta == null) { DateTime hoy = DateTime.Now;//aqui modificar para probar if (lib.Estado == "Reservado") { List <Reserva> reseraux = adminCopia.ReservaxLibro(lib.Isbn, lib.Ejemplar); if (reseraux != null) { Reserva rese = adminCopia.buscarReservaEspecifica(cli3.CodigoSocio, lib.Isbn, lib.Ejemplar); if (rese != null) { if (adminCopia.soselproximo(rese, hoy)) { if (adminCopia.eliminarReserva(rese.Codigo)) { MessageBox.Show("Hay una reserva y es el siguiente asi que se elimino la reserva"); } else { MessageBox.Show("Algo salió mal y no se pudo eliminar"); throw new Exception(); } } else { //MessageBox.Show("ya existe esta reserva pero ahi reservas con este libro anterior a este cliente"); throw new PrestamoException(); } } else { throw new PrestamoException(); } } } int dardias = cli3.dardiasXretirar(); DateTime devolucion = hoy.AddDays(dardias); if (adminCopia.Prestarlibro(lib)) { presta = new Prestamo(codigo, cli3, lib, hoy, devolucion); MostrarPrestamo mostrar = new MostrarPrestamo(presta); mostrar.ShowDialog(); bool estado = mostrar.darestado(); if (estado) { if (adminCopia.agregarPrestamo(presta)) { int cantidad = adminCopia.cantidadPrestamosFaltantes(presta.Cliente.Dni); if (cantidad == 0) { MessageBox.Show("el prestamo fue un exito pero el cliente ahora tiene el limite maximo de libros a su favor"); } else { MessageBox.Show("A este cliente le quedan todavia " + cantidad + " prestamos para realizar"); } MessageBox.Show("Se ha agregado con exito a la base de datos"); } else { MessageBox.Show("No se a agregado"); } } else { MessageBox.Show("fue cancelado"); } } else { MessageBox.Show("No se a podido cambiar el estado del libro"); } } else { MessageBox.Show("Ya existe un prestamo con este codigo"); } } catch (FormatException ex) { MessageBox.Show("Ingreso letras en lugar de numero / o no ingreso nada"); textBoxCodigo.Focus(); } catch (BlancoException ex) { MessageBox.Show(ex.Message); } catch (PrestamoException ex) { MessageBox.Show(ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } //finally---> no me lo toma(revisar) } else { if (lib.Estado == "Prestado") { MessageBox.Show("El libro ya fue prestado"); } } } } else { MessageBox.Show("Este cliente ya posee una prestamo a su nombre"); } } else { MessageBox.Show("El cliente ya posee 3 libros a su nombre"); } } //this.Close(); }