}// FIN btnEnviar_Click() /*** MODIFICACIÓN DE CRUCERO EXISTENTE ***/ private void btnGuardar_Click(object sender, EventArgs e) { string identificadorCruceroAnterior = identificadorCrucero; // 1. Obtenemos los atributos del crucero this.cargarCampos(); // 2. Construimos el objeto crucero Crucero crucero; try { crucero = new CruceroBuilder() .setModelo(modelo) .setMarca(marca) .setIdentificador(identificadorA, identificadorB) .setTipoServicio(this.obtenerTipoServicio()) .buildCrucero(); } catch (CamposObligatoriosVaciosException ex) { ex.mensajeError(); return; } // 3. Validamos que se haya ingresado al menos una cabina int cantidadCabinas = calcularCantidadCabinas(); try { Cabina.validarCantidadCabinas(cantidadCabinas); } catch (CruceroSinCabinasException ex) { ex.mensajeError(); return; } // 4. Guardamos las cabinas ingresadas en el crucero guardarCabinas(crucero, cantidadCabinas); // 5. Validamos que no haya cabinas repetidas (Numero-Piso debería ser único por crucero) if (crucero.hayCabinasRepetidas()) { MensajeBox.error("Cabinas repetidas: Hay cabinas con igual número y piso. Revise los datos e intente nuevamente."); return; } // 6. En este punto ya tenemos un crucero correctamente construido y listo para ser ACTUALIZADO (incluyendo sus cabinas) try { crucero.actualizar(identificadorCruceroAnterior); MensajeBox.info("El crucero se actualizo correctamente."); } catch (ActualizarCruceroException ex) { ex.mensajeError(); return; } } // FIN btnGuardar_Click()