示例#1
0
        public static DataTable RecuperarUsuariosAppActivosPorPosicion(int codigoPosicion, int codigoUsuarioApp)
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                DataTable tablaUsuarios = new DataTable();
                tablaUsuarios.Columns.Add("codigoUsuario", typeof(int));
                tablaUsuarios.Columns.Add("nombre", typeof(string));
                tablaUsuarios.Columns.Add("apellido", typeof(string));
                tablaUsuarios.Columns.Add("mail", typeof(string));
                tablaUsuarios.Columns.Add("contraseña", typeof(string));
                tablaUsuarios.Columns.Add("telefono", typeof(string));
                tablaUsuarios.Columns.Add("codigoPosicion", typeof(int));
                tablaUsuarios.Columns.Add("descripcionPosicion", typeof(string));
                tablaUsuarios.Columns.Add("codigoTelefono", typeof(string));
                tablaUsuarios.Columns.Add("imagen", typeof(string));
                tablaUsuarios.Columns.Add("isActivo", typeof(bool));

                List <UsuarioApp> listaUsuariosApp;

                if (codigoPosicion == 0)
                {
                    listaUsuariosApp = CatalogoGenerico <UsuarioApp> .RecuperarLista(x => x.IsActivo && x.Codigo != codigoUsuarioApp, nhSesion);
                }
                else
                {
                    listaUsuariosApp = CatalogoGenerico <UsuarioApp> .RecuperarLista(x => x.IsActivo && x.Posicion.Codigo == codigoPosicion && x.Codigo != codigoUsuarioApp, nhSesion);
                }

                listaUsuariosApp.Aggregate(tablaUsuarios, (dt, r) =>
                {
                    dt.Rows.Add(r.Codigo, r.Nombre, r.Apellido, r.Mail, r.Contraseña, r.Telefono, r.Posicion.Codigo, r.Posicion.Descripcion,
                                r.CodigoTelefono, "http://haycancha.sempait.com.ar/Imagenes/" + r.Imagen, r.IsActivo); return(dt);
                });

                return(tablaUsuarios);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }
示例#2
0
        public static DataTable RecuperarTurnosVigentesPorUsuario(int codigoUsuarioApp)
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                DataTable tablaTurnos = new DataTable();
                tablaTurnos.Columns.Add("codigoTurno", typeof(int));
                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("fecha", typeof(string));
                tablaTurnos.Columns.Add("codigoEstado", typeof(int));
                tablaTurnos.Columns.Add("descripcionEstado", typeof(string));

                List <TurnoVariable> listaTurnosVariables = CatalogoGenerico <TurnoVariable> .RecuperarLista(x => x.UsuarioApp.Codigo == codigoUsuarioApp && (x.EstadoTurno.Codigo == Constantes.EstadosTurno.PENDIENTE || x.EstadoTurno.Codigo == Constantes.EstadosTurno.RESERVADO || x.EstadoTurno.Codigo == Constantes.EstadosTurno.CANCELADO) && x.FechaHoraDesde >= DateTime.Now, nhSesion);

                listaTurnosVariables.Aggregate(tablaTurnos, (dt, r) =>
                {
                    dt.Rows.Add(r.Codigo, r.FechaHoraDesde.Hour, r.FechaHoraHasta.Hour, r.Cancha.Codigo, r.Cancha.Descripcion, r.Cancha.TipoCancha.Codigo,
                                r.Cancha.TipoCancha.Descripcion, r.Cancha.Complejo.Codigo, r.Cancha.Complejo.Descripcion, r.Cancha.Complejo.Logo, r.Cancha.PrecioTarde, r.Cancha.Complejo.Direccion,
                                3, r.Cancha.Complejo.Latitud, r.Cancha.Complejo.Longitud, r.FechaHoraDesde.ToString("dd/MM/yyyy"), r.EstadoTurno.Codigo, r.EstadoTurno.Descripcion); return(dt);
                });

                return(tablaTurnos);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                nhSesion.Close();
                nhSesion.Dispose();
            }
        }
示例#3
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();
            }
        }
示例#4
0
        public static DataTable RecuperarSolicitudesPorUsuario(int codigoUsuarioApp, int codigoEstadoSolicitud)
        {
            ISession nhSesion = ManejoNHibernate.IniciarSesion();

            try
            {
                DataTable tablaSolicitudes = new DataTable();
                tablaSolicitudes.Columns.Add("codigoSolicitud", typeof(int));
                tablaSolicitudes.Columns.Add("codigoEstadoSolicitud", typeof(int));
                tablaSolicitudes.Columns.Add("descripcionEstadoSolicitud", typeof(string));
                tablaSolicitudes.Columns.Add("codigoCancha", typeof(int));
                tablaSolicitudes.Columns.Add("descripcionCancha", typeof(string));
                tablaSolicitudes.Columns.Add("codigoComplejo", typeof(int));
                tablaSolicitudes.Columns.Add("descripcionComplejo", typeof(string));
                tablaSolicitudes.Columns.Add("fecha", typeof(string));
                tablaSolicitudes.Columns.Add("horaDesde", typeof(string));
                tablaSolicitudes.Columns.Add("horaHasta", typeof(string));
                tablaSolicitudes.Columns.Add("imagenUsuario", typeof(string));
                tablaSolicitudes.Columns.Add("nombreApellidoUsuario", typeof(string));
                tablaSolicitudes.Columns.Add("isCreator", typeof(bool));
                tablaSolicitudes.Columns.Add("codigoTurno", typeof(int));
                tablaSolicitudes.Columns.Add("codigoUsuarioAppInvitado", typeof(int));
                tablaSolicitudes.Columns.Add("direccionComplejo", typeof(string));
                tablaSolicitudes.Columns.Add("precio", typeof(double));
                tablaSolicitudes.Columns.Add("codigoTelefono", typeof(string));

                List <Solicitud> listaSolicitudesInvitado;

                if (codigoEstadoSolicitud == 0)
                {
                    listaSolicitudesInvitado = CatalogoSolicitud.RecuperarVigentesPorUsuarioApp(codigoUsuarioApp, nhSesion);
                }
                else
                {
                    listaSolicitudesInvitado = CatalogoSolicitud.RecuperarVigentesPorUsuarioAppYEstado(codigoUsuarioApp, codigoEstadoSolicitud, nhSesion);
                }

                foreach (Solicitud solicitud in listaSolicitudesInvitado)
                {
                    int      codigoCancha;
                    string   descripcionCancha;
                    int      codigoComplejo;
                    string   descripcionComplejo;
                    string   direccionComplejo;
                    double   precio;
                    DateTime fechaHoraDesde = new DateTime();
                    DateTime fechaHoraHasta = new DateTime();
                    string   imagenUsuario;
                    string   nombreApellido;
                    int      codigoTurno;
                    bool     isVariable;
                    string   codigoTelefono = string.Empty;

                    if (solicitud.TurnoFijo != null)
                    {
                        codigoCancha        = solicitud.TurnoFijo.Cancha.Codigo;
                        descripcionCancha   = solicitud.TurnoFijo.Cancha.Descripcion;
                        codigoComplejo      = solicitud.TurnoFijo.Cancha.Complejo.Codigo;
                        descripcionComplejo = solicitud.TurnoFijo.Cancha.Complejo.Descripcion;
                        nombreApellido      = solicitud.TurnoFijo.Responsable;
                        imagenUsuario       = string.Empty;
                        codigoTurno         = solicitud.TurnoFijo.Codigo;
                        isVariable          = false;
                        direccionComplejo   = solicitud.TurnoFijo.Cancha.Complejo.Direccion;
                        precio = solicitud.TurnoFijo.Cancha.PrecioTarde;

                        for (int i = 0; i < 6; i++)
                        {
                            DateTime fecha = DateTime.Now.AddDays(i);
                            if (Convert.ToInt32(fecha.DayOfWeek) == solicitud.TurnoFijo.CodigoDiaSemana)
                            {
                                fechaHoraDesde = Convert.ToDateTime(fecha.ToString("dd/MM/yyyy") + " " + solicitud.TurnoFijo.HoraDesde.ToString("00") + ":00:00");
                                fechaHoraHasta = Convert.ToDateTime(fecha.ToString("dd/MM/yyyy") + " " + solicitud.TurnoFijo.HoraHasta.ToString("00") + ":00:00");
                            }
                        }
                    }
                    else
                    {
                        codigoCancha        = solicitud.TurnoVariable.Cancha.Codigo;
                        descripcionCancha   = solicitud.TurnoVariable.Cancha.Descripcion;
                        codigoComplejo      = solicitud.TurnoVariable.Cancha.Complejo.Codigo;
                        descripcionComplejo = solicitud.TurnoVariable.Cancha.Complejo.Descripcion;
                        fechaHoraDesde      = solicitud.TurnoVariable.FechaHoraDesde;
                        fechaHoraHasta      = solicitud.TurnoVariable.FechaHoraHasta;
                        nombreApellido      = solicitud.TurnoVariable.UsuarioApp.Nombre + " " + solicitud.TurnoVariable.UsuarioApp.Apellido;
                        imagenUsuario       = solicitud.TurnoVariable.UsuarioApp.Imagen;
                        codigoTurno         = solicitud.TurnoVariable.Codigo;
                        isVariable          = true;
                        direccionComplejo   = solicitud.TurnoVariable.Cancha.Complejo.Direccion;
                        precio         = solicitud.TurnoVariable.Cancha.PrecioTarde;
                        codigoTelefono = solicitud.TurnoVariable.UsuarioApp.CodigoTelefono;
                    }

                    tablaSolicitudes.Rows.Add(new object[] { solicitud.Codigo, solicitud.EstadoSolicitud.Codigo, solicitud.EstadoSolicitud.Descripcion, codigoCancha,
                                                             descripcionCancha, codigoComplejo, descripcionComplejo, fechaHoraDesde.ToString("dd/MM/yyyy"), fechaHoraDesde.Hour, fechaHoraHasta.Hour,
                                                             imagenUsuario, nombreApellido, false, codigoTurno, codigoUsuarioApp, direccionComplejo, precio, codigoTelefono });
                }

                List <int> listaTurnosVariables = CatalogoGenerico <TurnoVariable> .RecuperarLista(x => x.UsuarioApp.Codigo == codigoUsuarioApp && x.FechaHoraDesde > DateTime.Now, nhSesion).Select(x => x.Codigo).ToList();

                List <Solicitud> listaSolicitud;

                if (codigoEstadoSolicitud == 0)
                {
                    listaSolicitud = CatalogoSolicitud.RecuperarPorTurnos(listaTurnosVariables, nhSesion);
                }
                else
                {
                    listaSolicitud = CatalogoSolicitud.RecuperarPorTurnosYEstado(listaTurnosVariables, codigoEstadoSolicitud, nhSesion);
                }

                foreach (Solicitud solicitud in listaSolicitud)
                {
                    int      codigoCancha;
                    string   descripcionCancha;
                    int      codigoComplejo;
                    string   descripcionComplejo;
                    DateTime fechaHoraDesde = new DateTime();
                    DateTime fechaHoraHasta = new DateTime();
                    string   direccionComplejo;
                    double   precio;
                    int      codigoTurno;
                    string   codigoTelefono = string.Empty;
                    bool     isVariable;

                    if (solicitud.TurnoFijo != null)
                    {
                        codigoCancha        = solicitud.TurnoFijo.Cancha.Codigo;
                        descripcionCancha   = solicitud.TurnoFijo.Cancha.Descripcion;
                        codigoComplejo      = solicitud.TurnoFijo.Cancha.Complejo.Codigo;
                        descripcionComplejo = solicitud.TurnoFijo.Cancha.Complejo.Descripcion;
                        codigoTurno         = solicitud.TurnoFijo.Codigo;
                        isVariable          = false;
                        direccionComplejo   = solicitud.TurnoFijo.Cancha.Complejo.Direccion;
                        precio = solicitud.TurnoFijo.Cancha.PrecioTarde;

                        for (int i = 0; i < 6; i++)
                        {
                            DateTime fecha = DateTime.Now.AddDays(i);
                            if (Convert.ToInt32(fecha.DayOfWeek) == solicitud.TurnoFijo.CodigoDiaSemana)
                            {
                                fechaHoraDesde = Convert.ToDateTime(fecha.ToString("dd/MM/yyyy") + " " + solicitud.TurnoFijo.HoraDesde.ToString("00") + ":00:00");
                                fechaHoraHasta = Convert.ToDateTime(fecha.ToString("dd/MM/yyyy") + " " + solicitud.TurnoFijo.HoraHasta.ToString("00") + ":00:00");
                            }
                        }
                    }
                    else
                    {
                        codigoCancha        = solicitud.TurnoVariable.Cancha.Codigo;
                        descripcionCancha   = solicitud.TurnoVariable.Cancha.Descripcion;
                        codigoComplejo      = solicitud.TurnoVariable.Cancha.Complejo.Codigo;
                        descripcionComplejo = solicitud.TurnoVariable.Cancha.Complejo.Descripcion;
                        fechaHoraDesde      = solicitud.TurnoVariable.FechaHoraDesde;
                        fechaHoraHasta      = solicitud.TurnoVariable.FechaHoraHasta;
                        codigoTurno         = solicitud.TurnoVariable.Codigo;
                        isVariable          = true;
                        direccionComplejo   = solicitud.TurnoVariable.Cancha.Complejo.Direccion;
                        precio         = solicitud.TurnoVariable.Cancha.PrecioTarde;
                        codigoTelefono = solicitud.TurnoVariable.UsuarioApp.CodigoTelefono;
                    }

                    tablaSolicitudes.Rows.Add(new object[] { solicitud.Codigo, solicitud.EstadoSolicitud.Codigo, solicitud.EstadoSolicitud.Descripcion, codigoCancha,
                                                             descripcionCancha, codigoComplejo, descripcionComplejo, fechaHoraDesde.ToString("dd/MM/yyyy"), fechaHoraDesde.Hour, fechaHoraHasta.Hour,
                                                             solicitud.UsuarioAppInvitado.Imagen, solicitud.UsuarioAppInvitado.Nombre + " " + solicitud.UsuarioAppInvitado.Apellido, true,
                                                             codigoTurno, codigoUsuarioApp, direccionComplejo, precio, codigoTelefono });
                }

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