コード例 #1
0
        }// 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()