示例#1
0
        public string idPersonaPorUsuario([FromBody] InUsuario data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado     = conexionEspol.idPersonaPorUsuario(data.usuario).Result;

            return(resultado);
        }
示例#2
0
        public string profesoresPorMateria([FromBody] IdMateria data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado     = conexionEspol.profesoresPorMateria(data.idMateria).Result;

            return(resultado);
        }
示例#3
0
        public string cursosRelacionados([FromBody] IdPersona data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado     = conexionEspol.cursosRelacionados(data.idPersona).Result;

            return(resultado);
        }
示例#4
0
        public string estudiantesPorCurso([FromBody] IdCurso data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado     = conexionEspol.estudiantesPorCurso(data.idCurso).Result;

            return(resultado);
        }
示例#5
0
        public string personasPorNombreYApellido([FromBody] NombrePersona data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado     = conexionEspol.personaPorNombreYApellido(data.nombre).Result;

            return(resultado);
        }
示例#6
0
        public string materiasPorFacultad([FromBody] IdFacultad data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado     = conexionEspol.materiasPorFacultad(data.idFacultad).Result;

            return(resultado);
        }
示例#7
0
        // Busca la latitud y longitud en la tabla de lugares de la espol y de la base local, buscando, de ser necesario, en el padre también
        public List <string> buscarLatitudYLongitud(int idLugar, bool buscarEnEspol = false)
        {
            List <string> retorno  = new List <string>();
            string        latitud  = null;
            string        longitud = null;

            var espacio = this.context.TBL_Espacio.Where(x => x.idLugarBaseEspol == idLugar).FirstOrDefault();

            if (espacio != null)
            {
                latitud  = espacio.latitud;
                longitud = espacio.longitud;
            }

            if ((latitud == null || longitud == null) && buscarEnEspol)
            {
                var conexionEspol = new ConexionEspol();
                var lugar         = JsonConvert.DeserializeObject <DatosLugar>(conexionEspol.Lugar(idLugar).Result);
                if (lugar != null)
                {
                    latitud  = lugar.strLatitud;
                    longitud = lugar.strLongitud;
                }
            }
            retorno.Add(latitud);
            retorno.Add(longitud);
            return(retorno);
        }
示例#8
0
        public string estadisticas([FromBody] DatosMapaInput data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            TipoSemana    tipoSemana    = JsonConvert.DeserializeObject <TipoSemana>(conexionEspol.TipoSemana(data.Fecha).Result);
            string        resultado     = conexionEspol.estadisticas(data.Fecha).Result;

            return(resultado);
        }
示例#9
0
        public List <DatosPersonaWS> dirigentesFacultad([FromBody] IdFacultad data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            string        resultado1    = conexionEspol.decanoFacultad(data.idFacultad).Result;
            var           datosQuery1   = JsonConvert.DeserializeObject <List <DatosPersonaWS> >(resultado1);
            string        resultado2    = conexionEspol.subdecanoFacultad(data.idFacultad).Result;
            var           datosQuery2   = JsonConvert.DeserializeObject <List <DatosPersonaWS> >(resultado2);

            return(datosQuery1.Concat(datosQuery2).ToList());
        }
示例#10
0
        public List <WsInfoLugaresAgendamiento> Disponibles([FromBody] InLugaresDisponibles data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();
            var           resultado     = JsonConvert.DeserializeObject <List <WsInfoLugaresAgendamiento> >(conexionEspol.aulasDisponibles(data.fechaInicio).Result); //Para probar debido al error
            //var resultado = JsonConvert.DeserializeObject<List<WsInfoLugaresAgendamiento>>(conexionEspol.aulasDisponibles(data.fechaInicio, data.fechaFin).Result); //Para probar debido al error

            var idsLugaresUsadosReunion = context.TBL_Reunion.Where(x => (
                                                                        x.fechaInicio >= data.fechaInicio && x.fechaInicio < data.fechaFin) ||
                                                                    (x.fechaFin >= data.fechaInicio && x.fechaFin < data.fechaFin)
                                                                    ).Select(x => x.idLugar).Distinct().ToList();

            return(resultado.Where(x => x.idPadre == data.idBloque && !idsLugaresUsadosReunion.Contains(x.idLugar)).ToList());
        }
            public ReunionDentroInvitacion(Reunion reunion, ContextAIG context)
            {
                ConexionEspol conexionEspol = new ConexionEspol();

                this.id          = reunion.id;
                this.idCreador   = reunion.idCreador;
                this.cancelada   = reunion.cancelada;
                this.asunto      = reunion.asunto;
                this.descripcion = reunion.descripcion;
                this.idLugar     = reunion.idLugar;
                this.fechaInicio = reunion.fechaInicio;
                this.fechaFin    = reunion.fechaFin;
                this.idPeriodo   = reunion.idPeriodo;
                this.nombreLugar = JsonConvert.DeserializeObject <DatosLugar>(conexionEspol.Lugar(idLugar).Result).strDescripcion;
            }
示例#12
0
        public string directivosTodos()
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.directivosTodos().Result);
        }
示例#13
0
        public string profesoresTodos()
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.profesoresTodos().Result);
        }
示例#14
0
        public string horarioDisponibilidad([FromBody] DatosHorarioDisponibilidadInput data)
        {
            ConexionEspol conexionEspol   = new ConexionEspol();
            string        resultado       = conexionEspol.horariosPersonas(data.idsPersonas, data.fecha).Result;
            var           datos           = JsonConvert.DeserializeObject <List <List <HorarioPersona> > >(resultado);
            TipoSemana    tipoSemana      = JsonConvert.DeserializeObject <TipoSemana>(conexionEspol.TipoSemana(data.fecha).Result);
            DateTime      horaInicioRango = new DateTime(data.fecha.Year, data.fecha.Month, data.fecha.Day, 7, 0, 0); //Fecha enviada con 07:00:00
            DateTime      horaFinRango    = new DateTime(data.fecha.Year, data.fecha.Month, data.fecha.Day, 7, 30, 0);
            DateTime      finBusqueda     = new DateTime(data.fecha.Year, data.fecha.Month, data.fecha.Day, 20, 30, 0);
            List <Dictionary <int, DatosHorarioDisponibilidad> > retorno = new List <Dictionary <int, DatosHorarioDisponibilidad> >();
            List <DateTime> horas = new List <DateTime>();

            Dictionary <int, string> nombresPersonas = new Dictionary <int, string>();

            while (horaFinRango <= finBusqueda)
            {
                horas.Add(horaInicioRango);
                var momento = new Dictionary <int, DatosHorarioDisponibilidad>();
                for (var i = 1; i < 7; i++)
                {
                    momento.Add(i, new DatosHorarioDisponibilidad());
                }
                retorno.Add(momento);
                horaInicioRango = horaInicioRango.AddMinutes(30);
                horaFinRango    = horaFinRango.AddMinutes(30);
            }

            foreach (var sublista in datos)
            {
                foreach (var item in sublista)
                {
                    if (!nombresPersonas.ContainsKey(item.idPersona))
                    {
                        nombresPersonas.Add(item.idPersona, item.nombres + " " + item.apellidos);
                    }
                    List <int> indices = new List <int>();
                    foreach (var hora in horas)
                    {
                        if (item.horarioHoraInicio.Value.TimeOfDay <= hora.TimeOfDay && hora.TimeOfDay < item.horarioHoraFin.Value.TimeOfDay)
                        {
                            indices.Add(horas.IndexOf(hora));
                        }
                    }
                    foreach (var i in indices)
                    {
                        var datosMomento = retorno[i][item.horarioDia];
                        if (!datosMomento.idsPersonas.Contains(item.idPersona))
                        {
                            datosMomento.numOcupados += 1;
                            datosMomento.nombresPersonas.Add(item.nombres.Trim() + " " + item.apellidos.Trim());
                            datosMomento.idsPersonas.Add(item.idPersona);
                        }
                    }
                }
            }

            foreach (int idPersona in data.idsPersonas)
            {
                if (!nombresPersonas.ContainsKey(idPersona))
                {
                    var per = JsonConvert.DeserializeObject <List <ClasePersona> >(conexionEspol.infoPersona(idPersona).Result);
                    if (per.Count > 0)
                    {
                        nombresPersonas.Add(idPersona, per[0].strNombres + " " + per[0].strApellidos);
                    }
                }
                var reunionesPersona = new ReunionController(context).ReunionesAsistir(new IdPersona {
                    idPersona = idPersona
                });
                foreach (Reunion reunion in reunionesPersona)
                {
                    List <int> indices = new List <int>();
                    foreach (var hora in horas)
                    {
                        if (reunion.fechaInicio <= hora && hora < reunion.fechaFin)
                        {
                            indices.Add(horas.IndexOf(hora));
                        }
                    }
                    foreach (var i in indices)
                    {
                        var datosMomento = retorno[i][(int)reunion.fechaInicio.DayOfWeek];
                        if (!datosMomento.idsPersonas.Contains(idPersona))
                        {
                            datosMomento.numOcupados += 1;
                            datosMomento.nombresPersonas.Add(nombresPersonas.GetValueOrDefault(idPersona));
                            datosMomento.idsPersonas.Add(idPersona);
                        }
                    }
                }
            }

            return(JsonConvert.SerializeObject(retorno));
        }
示例#15
0
        public string tipoSemana([FromBody] DatosMapaInput data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.TipoSemana(data.Fecha).Result);
        }
示例#16
0
        public string periodoDeFecha([FromBody] DatosMapaInput data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.PeriodoDeFecha(data.Fecha).Result);
        }
示例#17
0
        public string carrerasPorFacultad(int idFacultad)
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.carrerasPorFacultad(idFacultad).Result);
        }
示例#18
0
        public string CorreosPersonas([FromBody] IdsPersonas data)
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(String.Join(",", JsonConvert.DeserializeObject <List <string> >(conexionEspol.correosPersonas(data.ids).Result)));
        }
示例#19
0
        public string facultades()
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.facultades().Result);
        }
示例#20
0
        public List <DatosMapaRetorno> datosMapa([FromBody] DatosMapaInput data)
        {
            ConexionEspol      conexionEspol = new ConexionEspol();
            List <DatosMapaWS> datosQuery    = JsonConvert.DeserializeObject <List <DatosMapaWS> >(conexionEspol.datosMapa(data.Fecha).Result);
            Dictionary <int, DatosMapaRetorno> cantPorLugar = new Dictionary <int, DatosMapaRetorno>();
            Dictionary <int, List <string> >   latsYLongs   = new Dictionary <int, List <string> >();
            Dictionary <int, int> hijoPadre = new Dictionary <int, int>();

            foreach (var dato in datosQuery)
            {
                int    idUsar   = dato.idLugar;
                string latitud  = dato.latitud;
                string longitud = dato.longitud;

                //Si es null, busco en la base local o en los diccionarios
                if (latitud == null || longitud == null)
                {
                    if (hijoPadre.ContainsKey(dato.idLugar))
                    {
                        latitud  = latsYLongs[hijoPadre[dato.idLugar]][0];
                        longitud = latsYLongs[hijoPadre[dato.idLugar]][1];
                        idUsar   = hijoPadre[dato.idLugar];
                    }
                    else if (latsYLongs.ContainsKey(dato.idLugar))
                    {
                        latitud  = latsYLongs[dato.idLugar][0];
                        longitud = latsYLongs[dato.idLugar][1];
                    }
                    else
                    {
                        var latLong = this.buscarLatitudYLongitud(dato.idLugar);
                        latitud  = latLong[0];
                        longitud = latLong[1];
                        if (latitud != null && longitud != null)
                        {
                            latsYLongs.Add(dato.idLugar, latLong);
                        }
                    }
                }

                //Si sigue siendo null, busco la información del padre en la base local y en la base de espol
                if ((latitud == null || longitud == null) && !hijoPadre.ContainsKey(dato.idLugar))
                {
                    var idPadre = JsonConvert.DeserializeObject <IdPadre>(conexionEspol.idLugarPadre(dato.idLugar).Result);
                    var latLong = this.buscarLatitudYLongitud(idPadre.idPadre, true);
                    latitud  = latLong[0];
                    longitud = latLong[1];
                    if (!latsYLongs.ContainsKey(idPadre.idPadre))
                    {
                        latsYLongs.Add(idPadre.idPadre, latLong);
                    }
                    hijoPadre.Add(dato.idLugar, idPadre.idPadre);
                    idUsar = hijoPadre[dato.idLugar];
                }

                if (!cantPorLugar.ContainsKey(idUsar))
                {
                    cantPorLugar.Add(idUsar, new DatosMapaRetorno
                    {
                        lat   = latitud,
                        lng   = longitud,
                        count = 0,
                    });
                }
                cantPorLugar[idUsar].count += dato.numRegistrados;
            }

            var reuniones = context.TBL_Reunion.Where(x => x.cancelada == "F" && x.fechaInicio <= data.Fecha && x.fechaFin > data.Fecha).ToList();

            foreach (Reunion reunion in reuniones)
            {
                int    idUsar   = reunion.idLugar;
                string latitud  = null;
                string longitud = null;

                if (hijoPadre.ContainsKey(reunion.idLugar))
                {
                    latitud  = latsYLongs[hijoPadre[reunion.idLugar]][0];
                    longitud = latsYLongs[hijoPadre[reunion.idLugar]][1];
                    idUsar   = hijoPadre[reunion.idLugar];
                }
                else if (latsYLongs.ContainsKey(reunion.idLugar))
                {
                    latitud  = latsYLongs[reunion.idLugar][0];
                    longitud = latsYLongs[reunion.idLugar][1];
                }
                else
                {
                    var latLong = this.buscarLatitudYLongitud(reunion.idLugar);
                    latitud  = latLong[0];
                    longitud = latLong[1];
                    if (latitud != null && longitud != null)
                    {
                        latsYLongs.Add(reunion.idLugar, latLong);
                    }
                }

                //Si sigue siendo null, busco la información del padre en la base local y en la base de espol
                if ((latitud == null || longitud == null) && !hijoPadre.ContainsKey(reunion.idLugar))
                {
                    var idPadre = JsonConvert.DeserializeObject <IdPadre>(conexionEspol.idLugarPadre(reunion.idLugar).Result);
                    var latLong = this.buscarLatitudYLongitud(idPadre.idPadre, true);
                    latitud  = latLong[0];
                    longitud = latLong[1];
                    if (!latsYLongs.ContainsKey(idPadre.idPadre))
                    {
                        latsYLongs.Add(idPadre.idPadre, latLong);
                    }
                    hijoPadre.Add(reunion.idLugar, idPadre.idPadre);
                    idUsar = hijoPadre[reunion.idLugar];
                }

                if (!cantPorLugar.ContainsKey(idUsar))
                {
                    cantPorLugar.Add(idUsar, new DatosMapaRetorno
                    {
                        lat   = latitud,
                        lng   = longitud,
                        count = 0,
                    });
                }
                cantPorLugar[idUsar].count += this.context.TBL_Invitacion.Where(x => x.idReunion == reunion.id && x.estado == "A" && x.cancelada == "F").Count() + 1; //+1 por el id del creador;
            }

            return(cantPorLugar.Values.ToList());
        }
示例#21
0
        public string carreras()
        {
            ConexionEspol conexionEspol = new ConexionEspol();

            return(conexionEspol.carreras().Result);
        }