/// <summary> /// Obtiene listado de empresas registradas como competidor /// </summary> /// <returns>IEnumerable<Object></returns> public async Task <IEnumerable <Object> > GetEmpresasCompetidoras() { var listaFKEmpresas = await _dbComp.Competidor.AsNoTracking().Select(e => e.EmpresaId).ToListAsync(); EmpresasRepository repo = new EmpresasRepository(); var resultados = await repo.GetEmpresasByCollectionFKs(listaFKEmpresas); return(resultados); }
public async Task <IEnumerable <object> > GetEmpresasRelacionadas() { try { var listaFKEmpresasRelacionadas = await _gen.dbSetProyectoGEN.Where(e => e.EmpresaId != null).AsNoTracking().Select(e => e.EmpresaId).ToListAsync(); EmpresasRepository repo = new EmpresasRepository(); var resultados = await repo.GetEmpresasByCollectionFKs(listaFKEmpresasRelacionadas); return(resultados); } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// Lista de empresas asociadas a la lista de fks /// </summary> /// <returns>Objeto anonimo</returns> public async Task <IEnumerable <Object> > GetEmpresas() { try { EmpresasRepository repo = new EmpresasRepository(); var listaFks = await _db.Aliado.Where(e => e.Estado == true).AsNoTracking().Select(e => e.EmpresaId).ToListAsync(); var datos = await repo.GetEmpresasByCollectionFKs(listaFks); return(datos); } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// Obtiene todos los proyectos con unidad organizacional y empresas respectivas /// </summary> /// <returns>Object[]</returns> public async Task <Object[]> GetTotalProyectos() { try { UORepository uo = new UORepository(_gen); EmpresasRepository emp = new EmpresasRepository(_cr); var proyectos = await _gen.dbSetProyectoGEN.Where(e => e.EmpresaId != null && subprogramas.subprogramas.Contains(e.SubPrograma)).AsNoTracking().ToListAsync(); var unidadesId = proyectos.Select(e => e.UnidadOrganizacionalId).ToList(); Object[] lista = new Object[proyectos.Count]; IEnumerable <UnidadOrganizacional> unidadOrganizacional = await uo.GetAllCollectionMAX(unidadesId); IEnumerable <Empresa> empresas = await emp.GetEmpresas(); foreach (var item in proyectos) { lista[proyectos.IndexOf(item)] = new { cliente = empresas.Where(e => e.EmpresaId == item.EmpresaId).Select(e => e.NombreEmpresa).FirstOrDefault(), proyectoID = item.ProyectoId, nombre = item.Nombre, monto = item.Costo, fInicio = item.FechaInicio, fFinal = item.FechaFin, gerencia = unidadOrganizacional.Where(e => e.ClaveUnidad == item.UnidadOrganizacionalId).Select(e => e.NombreUnidad).FirstOrDefault() }; } return(lista); } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// Obtiene proyectos vigentes con unidad organizacional y empresa respectivos /// </summary> /// <returns>IEnumerable<Proyecto></returns> public async Task <IEnumerable <Proyecto> > GetProyectosVigentes() { DateTime hoy = DateTime.Now; UORepository uo = new UORepository(_gen); EmpresasRepository empresasrepo = new EmpresasRepository(_cr); var proyectos = await _gen.dbSetProyectoGEN .Where(e => e.FechaFin > hoy && subprogramas.subprogramas.Contains(e.SubPrograma)) .Include(e => e.UnidadOrganizacionalEmpresas) .AsNoTracking().ToListAsync(); var listaunidadesid = proyectos.Select(e => e.UnidadOrganizacionalId).ToList(); var listaempresasid = proyectos .Where(e => e.EmpresaId != null) .Select(e => e.EmpresaId).ToList(); IEnumerable <Empresa> empresas = await empresasrepo.GetEmpresas(); IEnumerable <UnidadOrganizacional> unidadorganizacional = await uo.GetAllCollectionMAX(listaunidadesid); foreach (var proyecto in proyectos) { if (proyecto.UnidadOrganizacionalId != null) { proyecto.UnidadOrganizacional = unidadorganizacional.Where(e => e.ClaveUnidad == proyecto.UnidadOrganizacionalId).FirstOrDefault(); } if (proyecto.EmpresaId != null) { proyecto.Empresa = empresas.Where(e => e.EmpresaId == proyecto.EmpresaId).FirstOrDefault(); } } return(proyectos.OrderByDescending(e => e.FechaInicio)); }