Example #1
0
        public async Task <IHttpActionResult> GetAllsolicitudesITF()
        {
            try
            {
                var Solicitud = await _SolicitudRepository.getAllsolicitudesITF();

                if (Solicitud != null && Solicitud.Count() > 0)
                {
                    List <String> clavesPersonas = Solicitud.Select(x => x.ClavePersona).ToList();
                    if (clavesPersonas != null && clavesPersonas.Count() > 0)
                    {
                        var personas = await _PersonasRepository.GetAllCollectionWithoutStatus(new HashSet <String>(clavesPersonas));

                        foreach (var soli in Solicitud)
                        {
                            var p = personas.Find(x => x.ClavePersona.Equals(soli.ClavePersona));
                            if (p != null)
                            {
                                soli.NombreCompleto = p.NombreCompleto;
                            }
                        }
                    }
                }
                return(Ok(Solicitud));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                return(InternalServerError(e));
            }
        }
Example #2
0
        public async Task <IHttpActionResult> GetAllGerente(String id)
        {
            try
            {
                var lista = await _solicitudGIRepository.GetAllGerente(id);

                //var Solicitud = await _solicitudGIRepository.getAllPendientesAdministradorGI();
                if (lista != null && lista.Count() > 0)
                {
                    var personasID = lista.Select(x => x.ClavePersona).ToList();
                    var personas   = await _PersonasRepository.GetAllCollectionWithoutStatus(personasID);

                    if (personas != null && personas.Count() > 0)
                    {
                        foreach (var soli in lista)
                        {
                            var p = personas.Find(x => x.ClavePersona.Equals(soli.ClavePersona));
                            if (p != null)
                            {
                                soli.NombreCompleto = p.NombreCompleto;
                            }
                        }
                    }
                }
                return(Ok(lista));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                return(InternalServerError(e));
            }
        }
        //retorna verdadero si la ClavePersona coinside con ClavePersona del registro, alguno de los autores o hiperjefes de los autores
        public async Task <Boolean> EvidenciaDownload(int idRegistro, String ClavePersona)
        {
            try
            {
                var entitie = await dbGI.DbSetPlanNegocioEvolutivo.AsNoTracking()
                              .Include(x => x.PlanNegocioEvolAutores)
                              .FirstOrDefaultAsync(e => e.PlanNegocioEvolutivoId == idRegistro);

                if (entitie.TipoAcceso == 1)
                { //1: publico
                    return(true);
                }
                else
                {
                    if (entitie.ClavePersona.Equals(ClavePersona))
                    {
                        return(true);
                    }
                    if (entitie != null && entitie.PlanNegocioEvolAutores != null)
                    {
                        var autor = entitie.PlanNegocioEvolAutores.FirstOrDefault(x => x.ClavePersona.Equals(ClavePersona));
                        if (autor != null)
                        {
                            return(true);
                        }
                    }
                    else
                    {
                        JerarquiaRepository hiper = new JerarquiaRepository();
                        Jerarquia           jer   = new Jerarquia(null, ClavePersona, null);
                        jer.JefeHiperonimo = ClavePersona;
                        var autores = entitie.PlanNegocioEvolAutores.Select(x => x.ClavePersona).ToList();
                        PersonasRepository dbPers = new PersonasRepository();
                        var personas = await dbPers.GetAllCollectionWithoutStatus(autores);

                        var unidadesClave = personas.Select(x => x.ClaveUnidad).ToList();

                        if (unidadesClave != null)
                        {
                            foreach (var u in unidadesClave)
                            {
                                jer.UnidadOrganizacionalId = u;
                                if (await hiper.isJefeHiperonimoByUnidadOrganizacionalId(jer))
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                }
                return(false);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        /// <summary>
        /// obtiene una lista de Oportunidades de negocio
        /// </summary>
        /// <param name="anio"></param>
        /// <returns></returns>
        public async Task <IEnumerable <OportunidadNegocio> > GetON(int anio)
        {
            DateTime           anioconsulta = new DateTime(anio, 1, 1);
            DateTime           fechafin     = anioconsulta.AddYears(1);
            PersonasRepository personarepo  = new PersonasRepository(_gen);

            List <int?> empresasenproyectos = _gen.dbSetProyectoGEN
                                              .Where(e => e.EmpresaId != null && subprogramas.subprogramas.Contains(e.SubPrograma))
                                              .Select(e => e.EmpresaId).Distinct().Distinct().ToList();

            var ons = await _cr.OportunidadNegocio
                      .Where(e => e.Fecha > anioconsulta &&
                             e.Fecha < fechafin &&
                             empresasenproyectos.Contains(e.empresaId)
                             )
                      .AsNoTracking().ToListAsync();

            HashSet <string> listaclavepersona = new HashSet <string>(ons.Select(e => e.Investigador).ToList());
            var listaempresaid = ons.Select(e => e.empresaId);
            var clavesUnidades = ons.Select(e => e.ClaveUnidad).Distinct().ToList();
            IEnumerable <Personas> personas = await personarepo.GetAllCollectionWithoutStatus(listaclavepersona);

            IEnumerable <Empresa> empresas = await new EmpresasRepository(_cr).GetEmpresasByTrue();
            var unidades = await new UORepository().GetAllCollectionMAX(clavesUnidades);

            foreach (var oportunidad in ons)
            {
                if (oportunidad.Investigador != null)
                {
                    oportunidad.NombreInvestigador = personas
                                                     .Where(e => e.ClaveUnidad == oportunidad.Investigador)
                                                     .Select(e => e.NombreCompleto).FirstOrDefault();
                }
                if (oportunidad.empresaId != null)
                {
                    oportunidad.Empresa = empresas
                                          .Where(e => e.EmpresaId == oportunidad.empresaId)
                                          .FirstOrDefault();
                }
                if (oportunidad.ClaveUnidad != null)
                {
                    oportunidad.NombreUnidad = unidades.Where(e => e.ClaveUnidad == oportunidad.ClaveUnidad).Select(x => x.NombreUnidad).FirstOrDefault();
                }
            }

            return(ons);
        }
        public async Task <IEnumerable <Personas> > GetByOC(Autores model)
        {
            try
            {
                var entities = await _db.DbSetAutores.Where(e => e.ContenidoId == model.ContenidoId && e.idOC == model.idOC).Select(e => e.clave).AsNoTracking().ToListAsync();

                List <String>      clavesInv = new List <string>(entities);
                PersonasRepository autores   = new PersonasRepository();
                var lista = await autores.GetAllCollectionWithoutStatus(clavesInv);

                return(lista);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Example #6
0
        /// <summary>
        /// recupera los responsables de Gerencias activas considerando fecha efectiva
        /// </summary>
        /// <returns></returns>
        public async Task <IEnumerable <Personas> > PersonasResponsablesByGetAllUniques()
        {
            try
            {
                var responsablesID = await this.GetAllUniques(DateTime.Now)
                                     .Where(x => x.Estado == 1 && x.tipoO == 3)
                                     .Select(x => x.ClaveResponsable).ToListAsync();

                PersonasRepository pDB = new PersonasRepository(_db);
                var responsables       = await pDB.GetAllCollectionWithoutStatus(responsablesID);

                return(responsables);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }