public Crucero(CruceroBuilder cruceroBuilder)
 {
     this.modelo        = cruceroBuilder.getModelo();
     this.marca         = cruceroBuilder.getMarca();
     this.identificador = cruceroBuilder.getIdentificador();
     this.fechaAlta     = cruceroBuilder.getFechaAlta();
     this.tipoServicio  = cruceroBuilder.getTipoServicio();
 }
Beispiel #2
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()