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)); } }
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); } }
/// <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); } }