public string CheckOut(Reserva res)
        {
            string salida = "";

            var crudReserva = new ReservaCrudFactory();

            var llave = new LlaveQR()
            {
                CodigoQR = res.idQR
            };

            try
            {
                llave = crudLlaveQR.Retrieve <LlaveQR>(llave);
                if (llave == null)
                {
                    // La llave QR no existe
                    throw new BussinessException(20);
                }

                var reserva = new Reserva()
                {
                    Codigo = llave.IdReserva
                };

                res = crudReserva.Retrieve <Reserva>(reserva);

                llave.EstadoQR = "3";
                crudLlaveQR.Update(llave);

                res.Estado = "0";
                crudReserva.Update(res);

                salida = "Check out realizado con éxito";
            }
            catch (Exception ex)
            {
                ExceptionManager.GetInstance().Process(ex);
            }

            return(salida);
        }
        public string CheckIn(Reserva res)
        {
            string salida       = "";
            int    idHabitacion = res.IdHabitacion;
            string idHotel      = res.IdHotel;
            int    codigoRes    = res.Codigo;

            var crudReserva = new ReservaCrudFactory();

            var llave = new LlaveQR()
            {
                CodigoQR = res.idQR
            };

            try
            {
                llave = crudLlaveQR.Retrieve <LlaveQR>(llave);
                if (llave == null)
                {
                    // La llave QR no existe
                    throw new BussinessException(20);
                }

                var reserva = new Reserva()
                {
                    Codigo = llave.IdReserva
                };

                res = crudReserva.Retrieve <Reserva>(reserva);
                res.IdHabitacion = idHabitacion;

                if (res.IdHotel.Equals(idHotel) && llave.IdReserva == codigoRes)
                {
                    switch (llave.EstadoQR)
                    {
                    case "2":
                        // La llave QR se encuentra inactiva
                        throw new BussinessException(57);

                    case "3":
                        // La llave QR ya expiró
                        throw new BussinessException(58);
                    }

                    switch (res.Estado)
                    {
                    case "0":
                        // La reserva ya terminó!
                        throw new BussinessException(18);

                    case "1":
                        salida = "Adelante!";
                        break;

                    case "2":
                        if (res.FechaInicio.Date.CompareTo(DateTime.Now.Date) <= 0)
                        {
                            salida     = "Check in exitoso!";
                            res.Estado = "1";
                            crudReserva.Update(res);
                        }
                        else
                        {
                            // La fecha no es válida!
                            throw new BussinessException(19);
                        }

                        break;

                    case "3":
                        // La reserva está cancelada!
                        throw new BussinessException(18);
                    }
                }
                else
                {
                    // El código no pertenece a esta reservación
                    throw new BussinessException(23);
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.GetInstance().Process(ex);
            }

            return(salida);
        }
Exemple #3
0
 public ReservaManager()
 {
     crudReserva = new ReservaCrudFactory();
 }