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); }
public void Update(Reserva reserva) { crudReserva.Update(reserva); }