예제 #1
0
        /// <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);
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        /// <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);
            }
        }
예제 #4
0
        /// <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);
            }
        }
예제 #5
0
        /// <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));
        }