예제 #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()
 public Crucero(CruceroBuilder cruceroBuilder)
 {
     this.modelo        = cruceroBuilder.getModelo();
     this.marca         = cruceroBuilder.getMarca();
     this.identificador = cruceroBuilder.getIdentificador();
     this.fechaAlta     = cruceroBuilder.getFechaAlta();
     this.tipoServicio  = cruceroBuilder.getTipoServicio();
 }
예제 #3
0
        // Botón para guardar los cambios en los campos de un crucero con viajes asignados, es decir, solo
        // se guardan sus atributos principales, no sus cabinas
        private void btnGuardarSinCabinas_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;
            }

            // 6. En este punto ya tenemos un crucero correctamente construido y listo para ser ACTUALIZADO (incluyendo sus cabinas)
            try
            {
                crucero.actualizarCrucero(identificadorCruceroAnterior);
                MensajeBox.info("El crucero se actualizo correctamente.");
            }
            catch (ActualizarCruceroException ex)
            {
                ex.mensajeError();
                return;
            }
        }
예제 #4
0
        /*** ALTA DE NUEVO CRUCERO ***/

        private void btnAlta_Click(object sender, EventArgs e)
        {
            // 1. Obtenemos los atributos del crucero
            this.cargarCampos();
            DateTime fechaAlta = ArchivoConfig.obtenerFechaConfig();

            // 2. Construimos el objeto crucero
            Crucero crucero;

            try
            {
                crucero = new CruceroBuilder()
                          .setModelo(modelo)
                          .setMarca(marca)
                          .setIdentificador(identificadorA, identificadorB)
                          .setFechaAlta(fechaAlta)
                          .setTipoServicio(this.obtenerTipoServicio())
                          .buildCrucero();
            }
            catch (CamposObligatoriosVaciosException ex)
            {
                ex.mensajeError();
                return;
            }

            // 3. Validamos que el identificador del crucero esté disponible
            if (Crucero.identificadorDisponible(crucero.getIdentificador()).Equals(false))
            {
                MensajeBox.error("El identificador ingresado para el crucero ya se encuentra registrado.");
                return;
            }

            // 4. Validamos que se haya ingresado al menos una cabina
            int cantidadCabinas = calcularCantidadCabinas();

            try
            {
                Cabina.validarCantidadCabinas(cantidadCabinas);
            }
            catch (CruceroSinCabinasException ex)
            {
                ex.mensajeError();
                return;
            }

            // 5. Guardamos las cabinas ingresadas en el objeto crucero
            guardarCabinas(crucero, cantidadCabinas);

            // 6. 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;
            }

            // 7. En este punto ya tenemos un crucero correctamente construido y listo para ser INSERTADO (incluyendo sus cabinas)
            try
            {
                crucero.insertar();
                MensajeBox.info("El crucero se dió de alta correctamente.");
            }
            catch (InsertarCruceroException ex)
            {
                ex.mensajeError();
                return;
            }
        }// FIN btnEnviar_Click()