Beispiel #1
0
        private void validarHorario(Reserva reservaACrear)
        {

            Horario horario = obtenerHorario("http://localhost:22057/Horarios.svc/Horarios?codigo=" + reservaACrear.CodigoEspacio + "&fecha=" + reservaACrear.FechaInicio);

            if (horario == null)
            {
                throw new WebFaultException<Error>(
                        new Error()
                        {
                            Codigo = "ERR006",
                            Mensaje = "El espacio no se encuentra disponible en este horario"
                        },
                            HttpStatusCode.InternalServerError);
            }

            DateTime fecha = DateTime.ParseExact(reservaACrear.FechaInicio, DATEFORMAT, CultureInfo.InvariantCulture);
            int horaInicio = int.Parse(horario.HoraInicio.Substring(0,2));
            int minutoInicio = int.Parse(horario.HoraInicio.Substring(3));

            int horaFin = int.Parse(horario.HoraFin.Substring(0,2));
            int minutoFin = int.Parse(horario.HoraFin.Substring(3));

            if (!(horaInicio <= fecha.Hour && fecha.Hour <= horaFin))
            {
                throw new WebFaultException<Error>(
                        new Error()
                        {
                            Codigo = "ERR006",
                            Mensaje = "El espacio no se encuentra disponible en este horario"
                        },
                            HttpStatusCode.InternalServerError);
            }

        }
Beispiel #2
0
 public Reserva Crear(Reserva reservaACrear)
 {
     int codigo = SelectMax();
     Reserva reservaCreado = null;
     string sql = "SET LANGUAGE Spanish; INSERT INTO TB_RESERVA VALUES(@cod,@codEsp,DATENAME(dw,@fecIni),@cantHora,@fecIni,@fecFin,@estado)";
     using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@cod", codigo));
             com.Parameters.Add(new SqlParameter("@codEsp", reservaACrear.CodigoEspacio));
             com.Parameters.Add(new SqlParameter("@cantHora", reservaACrear.CantidadHoras));
             com.Parameters.Add(new SqlParameter("@fecIni", DateTime.ParseExact(reservaACrear.FechaInicio, DATEFORMAT, CultureInfo.InvariantCulture)));
             com.Parameters.Add(new SqlParameter("@fecFin", DateTime.ParseExact(reservaACrear.FechaFin, DATEFORMAT, CultureInfo.InvariantCulture)));
             com.Parameters.Add(new SqlParameter("@estado", reservaACrear.Estado));
             com.ExecuteNonQuery();
         }
     }
     reservaCreado = Obtener(codigo);
     return reservaCreado;
 }
Beispiel #3
0
        public string RegistrarReserva(Reserva reservaACrear)
        {

            validarHorario(reservaACrear);

            reservaACrear.FechaFin = addHour(reservaACrear.FechaInicio, reservaACrear.CantidadHoras);

            List<Reserva> reservaObtenidos = dao.ValidarDisponibilidad(reservaACrear);
            Reserva reservaReservada = null;
            if (reservaObtenidos.Count > 0) {
                foreach (Reserva reserva in reservaObtenidos)
                {
                    if (reserva.Estado.Equals(Estado.RESERVADO) || reserva.Estado.Equals(Estado.CONFIRMADO))
                    {
                        reservaReservada = reserva;
                        break;
                    }
                }
            }
            

            if (reservaReservada != null)
            {
                throw new WebFaultException<Error>(
                        new Error()
                        {
                            Codigo = "ERR004",
                            Mensaje = "El espacio deportivo ya ha sido reservado"
                        },
                            HttpStatusCode.InternalServerError);
            }

            Reserva reservaRegistrado = null;
            reservaACrear.Estado = Estado.RESERVADO;

            reservaRegistrado = dao.Crear(reservaACrear);

            return "La reserva registrada exitosamente (" + reservaRegistrado.Codigo + ")";
        }
Beispiel #4
0
 public List<Reserva> ValidarDisponibilidad(Reserva reservaAValidar)
 {
     Reserva reservaEncontrado = null;
     List<Reserva> reservas = new List<Reserva>();
     string sql = "SELECT * FROM TB_RESERVA WHERE cod_esp=@codEsp "+
         " AND ((@fecIni between fecha_inicio AND fecha_fin) OR (@fecFin between fecha_inicio AND fecha_fin))";
     using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@codEsp", reservaAValidar.CodigoEspacio));
             com.Parameters.Add(new SqlParameter("@fecIni", DateTime.ParseExact(reservaAValidar.FechaInicio, DATEFORMAT, CultureInfo.InvariantCulture)));
             com.Parameters.Add(new SqlParameter("@fecFin", DateTime.ParseExact(reservaAValidar.FechaFin, DATEFORMAT, CultureInfo.InvariantCulture)));
             using (SqlDataReader resultado = com.ExecuteReader())
             {
                 if (resultado.Read())
                 {
                     reservaEncontrado = new Reserva()
                     {
                         Codigo = (int)resultado["codigo"],
                         CodigoEspacio = (int)resultado["cod_esp"],
                         Dia = (string)resultado["dia"],
                         CantidadHoras = (int)resultado["cant_hora"],
                         FechaInicio = ((DateTime)resultado["fecha_inicio"]).ToString(DATEFORMAT),
                         FechaFin = ((DateTime)resultado["fecha_fin"]).ToString(DATEFORMAT),
                         Estado = (string)resultado["estado"]
                     };
                     reservas.Add(reservaEncontrado);
                 }
             }
         }
         con.Close();
     }
     return reservas;
 }
Beispiel #5
0
 public Reserva Obtener(int codigo)
 {
     Reserva reservaEncontrado = null;
     string sql = "SELECT * FROM TB_RESERVA WHERE codigo=@cod";
     using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@cod", codigo));
             using (SqlDataReader resultado = com.ExecuteReader())
             {
                 if (resultado.Read())
                 {
                     reservaEncontrado = new Reserva()
                     {
                         Codigo = (int)resultado["codigo"],
                         CodigoEspacio = (int)resultado["cod_esp"],
                         Dia = (string)resultado["dia"],
                         CantidadHoras = (int)resultado["cant_hora"],
                         FechaInicio = ((DateTime)resultado["fecha_inicio"]).ToString(DATEFORMAT),
                         FechaFin = ((DateTime)resultado["fecha_fin"]).ToString(DATEFORMAT),
                         Estado = (string)resultado["estado"]
                     };
                 }
             }
         }
         con.Close();
     }
     return reservaEncontrado;
 }
Beispiel #6
0
 public List<Reserva> ListarTodos()
 {
     Reserva reservaEncontrado = null;
     List<Reserva> reservas = new List<Reserva>();
     string sql = "SELECT * FROM TB_RESERVA";
     using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             using (SqlDataReader resultado = com.ExecuteReader())
             {
                 while (resultado.Read())
                 {
                     reservaEncontrado = new Reserva()
                     {
                         Codigo = (int)resultado["codigo"],
                         CodigoEspacio = (int)resultado["cod_esp"],
                         Dia = (string)resultado["dia"],
                         CantidadHoras = (int)resultado["cant_hora"],
                         FechaInicio = ((DateTime)resultado["fecha_inicio"]).ToString(DATEFORMAT),
                         FechaFin = ((DateTime)resultado["fecha_fin"]).ToString(DATEFORMAT),
                         Estado = (string)resultado["estado"]
                     };
                     reservas.Add(reservaEncontrado);
                 }
             }
         }
         con.Close();
     }
     return reservas;
 }
Beispiel #7
0
 public Reserva Modificar(Reserva reservaAModificar)
 {
     Reserva reservaModificado = null;
     string sql = "SET LANGUAGE Spanish; UPDATE TB_RESERVA SET cod_esp=@codEsp, dia=DATENAME(dw,@fechaFin), cant_hora=@cantHora, fecha_inicio=@fechaIni, fecha_fin=@fechaFin, estado=@estado WHERE codigo=@cod";
     using (SqlConnection con = new SqlConnection(ConexionUtil.ObtenerCadena()))
     {
         con.Open();
         using (SqlCommand com = new SqlCommand(sql, con))
         {
             com.Parameters.Add(new SqlParameter("@cod", reservaAModificar.Codigo));
             com.Parameters.Add(new SqlParameter("@codEsp", reservaAModificar.CodigoEspacio));
             com.Parameters.Add(new SqlParameter("@cantHora", reservaAModificar.CantidadHoras));
             com.Parameters.Add(new SqlParameter("@fechaIni", DateTime.ParseExact(reservaAModificar.FechaInicio, DATEFORMAT, CultureInfo.InvariantCulture)));
             com.Parameters.Add(new SqlParameter("@fechaFin", DateTime.ParseExact(reservaAModificar.FechaFin, DATEFORMAT, CultureInfo.InvariantCulture)));
             com.Parameters.Add(new SqlParameter("@estado", reservaAModificar.Estado));
             com.ExecuteNonQuery();
         }
         con.Close();
     }
     reservaModificado = Obtener(reservaAModificar.Codigo);
     return reservaModificado;
 }
Beispiel #8
0
 public string ActualizarReserva(Reserva reservaAModificar)
 {
     reservaAModificar.FechaFin = addHour(reservaAModificar.FechaInicio, reservaAModificar.CantidadHoras);
     
     Reserva reservaActualizada = null;
     reservaActualizada = dao.Modificar(reservaAModificar);
     return "La reserva registrada exitosamente (" + reservaActualizada.Codigo + ")";
 }