Exemple #1
0
        public static DataTable RecuperarTurnosPorComplejoPorDia(DateTime fecha, int codigoComplejo)
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                Complejo complejo = CatalogoGenerico <Complejo> .RecuperarPorCodigo(codigoComplejo, nhSesion);

                List <Cancha> listaCanchas = CatalogoGenerico <Cancha> .RecuperarLista(x => x.Complejo.Codigo == codigoComplejo, nhSesion);

                DataTable tablaTurnos = new DataTable();
                tablaTurnos.Columns.Add("Hora");
                tablaTurnos.Columns.Add("HoraDesde");
                tablaTurnos.Columns.Add("HoraHasta");

                foreach (Cancha cancha in listaCanchas)
                {
                    tablaTurnos.Columns.Add("codigoCancha" + cancha.Descripcion);
                    tablaTurnos.Columns.Add("codigoTurno" + cancha.Descripcion);
                    tablaTurnos.Columns.Add(cancha.Descripcion);
                }

                int horaDesde = complejo.HoraApertura;
                int horaHasta = complejo.HoraCierre;

                List <TurnoVariable> listaTurnosVariables = CatalogoTurnoVariable.RecuperarPorFechaYHoraYComplejo(fecha, horaDesde, horaHasta, codigoComplejo, nhSesion).Where(x => x.EstadoTurno.Codigo != Constantes.EstadosTurno.CANCELADO && x.EstadoTurno.Codigo != Constantes.EstadosTurno.CANCELADO).ToList();
                List <TurnoFijo>     listaTurnosFijos     = CatalogoTurnoFijo.RecuperarPorFechaYHoraYComplejo(fecha, horaDesde, horaHasta, codigoComplejo, nhSesion);

                for (int i = horaDesde; i < horaHasta; i++)
                {
                    DataRow filaNueva = tablaTurnos.NewRow();
                    filaNueva["hora"]      = i + " a " + (i + 1);
                    filaNueva["HoraDesde"] = i;
                    filaNueva["HoraHasta"] = i + 1;

                    foreach (Cancha cancha in listaCanchas)
                    {
                        TurnoFijo turnoFijo = (from tf in listaTurnosFijos where tf.HoraDesde == i && tf.Cancha.Codigo == cancha.Codigo select tf).SingleOrDefault();

                        if (turnoFijo == null)
                        {
                            TurnoVariable turnoVariable = (from tv in listaTurnosVariables where tv.FechaHoraDesde.Hour == i && tv.Cancha.Codigo == cancha.Codigo select tv).SingleOrDefault();

                            filaNueva["codigoCancha" + cancha.Descripcion] = cancha.Codigo;

                            if (turnoVariable == null)
                            {
                                filaNueva["codigoTurno" + cancha.Descripcion] = "0";
                                filaNueva[cancha.Descripcion] = "Disponible";
                            }
                            else
                            {
                                if (turnoVariable.EstadoTurno.Codigo == Constantes.EstadosTurno.PENDIENTE)
                                {
                                    string nombreReserva = turnoVariable.Responsable != string.Empty ? turnoVariable.Responsable : turnoVariable.UsuarioApp.Nombre + " " + turnoVariable.UsuarioApp.Apellido;
                                    filaNueva["codigoTurno" + cancha.Descripcion] = turnoVariable.Codigo;
                                    filaNueva[cancha.Descripcion] = "Pendiente de confirmación - " + nombreReserva;
                                }
                                else if (turnoVariable.EstadoTurno.Codigo == Constantes.EstadosTurno.RESERVADO || turnoVariable.EstadoTurno.Codigo == Constantes.EstadosTurno.CERRADO)
                                {
                                    string nombreReserva = turnoVariable.Responsable != string.Empty ? turnoVariable.Responsable : turnoVariable.UsuarioApp.Nombre + " " + turnoVariable.UsuarioApp.Apellido;
                                    filaNueva["codigoTurno" + cancha.Descripcion] = turnoVariable.Codigo;
                                    filaNueva[cancha.Descripcion] = "Reservado - " + nombreReserva;
                                }
                            }
                        }
                        else
                        {
                            filaNueva["codigoTurno" + cancha.Descripcion] = turnoFijo.Codigo;
                            filaNueva[cancha.Descripcion] = "Reservado - " + turnoFijo.Responsable;
                        }
                    }
                    tablaTurnos.Rows.Add(filaNueva);
                }

                return(tablaTurnos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }
Exemple #2
0
        public static DataTable RecuperarTurnosPorRangoHorario(DateTime fecha, int horaDesde, int horaHasta, int codigoUsuarioApp)
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                DataTable tablaTurnos = new DataTable();
                tablaTurnos.Columns.Add("horaDesde", typeof(int));
                tablaTurnos.Columns.Add("horaHasta", typeof(int));
                tablaTurnos.Columns.Add("codigoCancha", typeof(int));
                tablaTurnos.Columns.Add("descripcionCancha", typeof(string));
                tablaTurnos.Columns.Add("codigoTipoCancha", typeof(int));
                tablaTurnos.Columns.Add("descripcionTipoCancha", typeof(string));
                tablaTurnos.Columns.Add("codigoComplejo", typeof(int));
                tablaTurnos.Columns.Add("descripcionComplejo", typeof(string));
                tablaTurnos.Columns.Add("imagenComplejo", typeof(string));
                tablaTurnos.Columns.Add("isFavorito", typeof(bool));
                tablaTurnos.Columns.Add("precio", typeof(double));
                tablaTurnos.Columns.Add("direccion", typeof(string));
                tablaTurnos.Columns.Add("puntajeComplejo", typeof(int));
                tablaTurnos.Columns.Add("latitud", typeof(double));
                tablaTurnos.Columns.Add("longitud", typeof(double));

                UsuarioApp usuarioApp = CatalogoGenerico <UsuarioApp> .RecuperarPorCodigo(codigoUsuarioApp, nhSesion);

                List <TurnoVariable> listaTurnosVariables = CatalogoTurnoVariable.RecuperarPorFechaYHora(fecha, horaDesde, horaHasta, nhSesion);
                List <TurnoFijo>     listaTurnosFijos     = CatalogoTurnoFijo.RecuperarPorFechaYHora(fecha, horaDesde, horaHasta, nhSesion);
                List <Cancha>        listaCanchas         = CatalogoGenerico <Cancha> .RecuperarTodos(nhSesion);

                for (int i = horaDesde; i < horaHasta; i++)
                {
                    foreach (Cancha cancha in listaCanchas)
                    {
                        TurnoFijo turnoFijo = (from tf in listaTurnosFijos where tf.HoraDesde == i && tf.Cancha.Codigo == cancha.Codigo select tf).SingleOrDefault();

                        if (turnoFijo == null)
                        {
                            TurnoVariable turnoVariable = (from tv in listaTurnosVariables where tv.FechaHoraDesde.Hour == i && tv.Cancha.Codigo == cancha.Codigo select tv).SingleOrDefault();

                            if (turnoVariable == null)
                            {
                                bool isFavorito = usuarioApp.ComplejosFravoritos.Where(x => x.Codigo == cancha.Complejo.Codigo) == null ? false : true;

                                double valoracion = 0;
                                if (cancha.Complejo.ValoracionesComplejo.Count > 0)
                                {
                                    valoracion = (double)cancha.Complejo.ValoracionesComplejo.Sum(x => x.Puntaje) / (double)cancha.Complejo.ValoracionesComplejo.Count;
                                }

                                tablaTurnos.Rows.Add(new object[] { i, i + 1, cancha.Codigo, cancha.Descripcion, cancha.TipoCancha.Codigo, cancha.TipoCancha.Descripcion,
                                                                    cancha.Complejo.Codigo, cancha.Complejo.Descripcion, cancha.Complejo.Logo, isFavorito, cancha.PrecioTarde, cancha.Complejo.Direccion,
                                                                    valoracion, cancha.Complejo.Latitud, cancha.Complejo.Longitud });
                            }
                        }
                    }
                }

                return(tablaTurnos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }
Exemple #3
0
        public static DataTable RecuperarTurnosDisponiblesPorComplejoPorDia(DateTime fecha, int codigoComplejo)
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                DataTable tablaTurnos = new DataTable();
                tablaTurnos.Columns.Add("horaDesde", typeof(int));
                tablaTurnos.Columns.Add("horaHasta", typeof(int));
                tablaTurnos.Columns.Add("codigoCancha", typeof(int));
                tablaTurnos.Columns.Add("descripcionCancha", typeof(string));
                tablaTurnos.Columns.Add("codigoTipoCancha", typeof(int));
                tablaTurnos.Columns.Add("descripcionTipoCancha", typeof(string));
                tablaTurnos.Columns.Add("codigoComplejo", typeof(int));
                tablaTurnos.Columns.Add("descripcionComplejo", typeof(string));
                tablaTurnos.Columns.Add("imagenComplejo", typeof(string));
                tablaTurnos.Columns.Add("precio", typeof(double));
                tablaTurnos.Columns.Add("direccion", typeof(string));
                tablaTurnos.Columns.Add("puntajeComplejo", typeof(int));
                tablaTurnos.Columns.Add("latitud", typeof(double));
                tablaTurnos.Columns.Add("longitud", typeof(double));
                tablaTurnos.Columns.Add("estado", typeof(string));

                Complejo complejo = CatalogoGenerico <Complejo> .RecuperarPorCodigo(codigoComplejo, nhSesion);

                int horaDesde = complejo.HoraApertura;
                int horaHasta = complejo.HoraCierre;

                List <TurnoVariable> listaTurnosVariables = CatalogoTurnoVariable.RecuperarPorFechaYHora(fecha, horaDesde, horaHasta, nhSesion);
                List <TurnoFijo>     listaTurnosFijos     = CatalogoTurnoFijo.RecuperarPorFechaYHora(fecha, horaDesde, horaHasta, nhSesion);
                List <Cancha>        listaCanchas         = CatalogoGenerico <Cancha> .RecuperarTodos(nhSesion);

                for (int i = horaDesde; i < horaHasta; i++)
                {
                    foreach (Cancha cancha in listaCanchas)
                    {
                        TurnoFijo turnoFijo = (from tf in listaTurnosFijos where tf.HoraDesde == i && tf.Cancha.Codigo == cancha.Codigo select tf).SingleOrDefault();

                        if (turnoFijo == null)
                        {
                            TurnoVariable turnoVariable = (from tv in listaTurnosVariables where tv.FechaHoraDesde.Hour == i && tv.Cancha.Codigo == cancha.Codigo select tv).SingleOrDefault();

                            if (turnoVariable == null)
                            {
                                tablaTurnos.Rows.Add(new object[] { i, i + 1, cancha.Codigo, cancha.Descripcion, cancha.TipoCancha.Codigo, cancha.TipoCancha.Descripcion,
                                                                    cancha.Complejo.Codigo, cancha.Complejo.Descripcion, "imagenComplejo", cancha.PrecioTarde, cancha.Complejo.Direccion,
                                                                    3, cancha.Complejo.Latitud, cancha.Complejo.Longitud });
                            }
                        }
                    }
                }

                return(tablaTurnos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }