Ejemplo n.º 1
0
        //public async Task<IEnumerable<LAproy>> OtrosMetodos(){ ... }
        public async Task <IEnumerable <InformeTecnicoFinal> > getData(DataServerSide ss, int EstadoITFFlujoId)
        {
            //EstadoITFFlujoId 4 is pubicado
            try
            {
                var v = (from a in
                         _db.dbSetInformeTFs
                         .Include(x => x.Proyecto.Empresa)
                         .Include(x => x.Proyecto.UnidadOrganizacionalEmpresas)
                         .Include(x => x.LActe)
                         .Include(x => x.LAcap)
                         .Include(x => x.LAproy)
                         .Where(x => x.EstadoITFFlujoId >= EstadoITFFlujoId &&
                                (x.LAproyId != null && x.LAproyId > 0))
                         select a);
                ss.recordsTotal = v.Count();
                //search


                List <datosCliente> clientes = new List <datosCliente>();



                foreach (var obj in v)
                {
                    if (obj.Proyecto != null)
                    {
                        if (obj.Proyecto.Empresa != null)
                        {
                            string a = obj.Proyecto.Empresa.NombreEmpresa;


                            if (obj.Proyecto.UnidadOrganizacionalEmpresas != null)
                            {
                                a = a + " " + obj.Proyecto.UnidadOrganizacionalEmpresas.NombreUnidad;
                            }

                            a = a.ToLower();

                            string caduax = "";

                            caduax = a.Replace("á", "a");
                            caduax = caduax.Replace("é", "e");
                            caduax = caduax.Replace("í", "i");
                            caduax = caduax.Replace("ó", "o");
                            caduax = caduax.Replace("ú", "u");
                            caduax = caduax.Replace("\r\n", " ");

                            datosCliente itemCliente = new datosCliente(obj.LAproyId.ToString(), caduax);

                            clientes.Add(itemCliente);
                        }
                    }
                }


                if (!string.IsNullOrEmpty(ss.ClaveUnidad))
                {
                    UORepository uo  = new UORepository();
                    var          uni = await uo.GetByIdWithChildren(ss.ClaveUnidad);

                    HashSet <String> clavesUnidad = null;
                    if (uni.tipoO < 3)
                    {
                        var unidades = uni.Children.Select(x => x.ClaveUnidad).ToList();
                        clavesUnidad = new HashSet <String>(unidades);
                        var x2 = await uo.GetAllCollectionMAX(clavesUnidad);
                    }
                    else
                    {
                        clavesUnidad = new HashSet <String>();
                        clavesUnidad.Add(ss.ClaveUnidad);
                    }

                    v = v.Where(e => clavesUnidad.Contains(e.Proyecto.UnidadOrganizacionalId));
                }
                if (!String.IsNullOrEmpty(ss.searchValue))
                {
                    var listaPalabrasClave = await GetPalabrasClave(ss.searchValue);

                    var proyecto = await GetJefeProyectoProyectoID(ss.searchValue);


                    List <int?> idSeleccionados = new List <int?>();

                    foreach (var elemento in clientes)
                    {
                        string cadenabusqueda = elemento.nombreDato;



                        if (cadenabusqueda.IndexOf(ss.searchValue) > 0)
                        {
                            int valor = int.Parse(elemento.idDato);
                            idSeleccionados.Add(valor);
                        }
                    }

                    v = v.Where(e => listaPalabrasClave.Contains(e.LAproyId) || proyecto.Contains(e.LAproyId) || idSeleccionados.Contains(e.LAproyId));
                }

                if (!String.IsNullOrEmpty(ss.palabras))
                {
                    var pal = ss.palabras.Split(' ');
                    //foreach (var p in pal)
                    //  {

                    var listaPalabrasClave = await GetPalabrasClave(ss.palabras);

                    var listaInsumos = await GetInsumos(ss.palabras);

                    var listaEquipo = await GetEquipo(ss.palabras);

                    var listaGestion = await GetGestion(ss.palabras);

                    var listaCumplimiento = await GetCumplimiento(ss.palabras);


                    v = v.Where(e => listaPalabrasClave.Contains(e.LAproyId) || listaInsumos.Contains(e.LAproyId) || listaEquipo.Contains(e.LAproyId) || listaGestion.Contains(e.LAproyId) || listaCumplimiento.Contains(e.LAproyId));
                    //}
                }
                if (!String.IsNullOrEmpty(ss.proyectoId))
                {
                    v = v.Where(e => e.Proyecto.ProyectoId.Equals(ss.proyectoId));
                }
                if (!String.IsNullOrEmpty(ss.EmpresaId))
                {
                    v = v.Where(e => e.Proyecto.EmpresaId.ToString().Equals(ss.EmpresaId));
                }
                if (!String.IsNullOrEmpty(ss.NumjefeProyecto))
                {
                    v = v.Where(e => e.Proyecto.NumjefeProyecto.Equals(ss.NumjefeProyecto));
                }
                //sort
                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir)))
                {
                    //for make sort simpler we will add Syste.Linq.Dynamic reference
                    v = v.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);
                }

                ss.recordsFiltered = v.Count();
                var entities = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync();

                return(entities);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Ejemplo n.º 2
0
                                                       public async Task <List <ProyectosFF> > GetConvocatoria(int ConvocatoriaId, string ClaveUnidad, List <ProyectosFF> ProyectosFF)
                                                       {
                                                           // List<ProyectosFF> ProyectosFFSelect = new List<ProyectosFF>();

                                                           var ProyectoPC = new List <ProyectoPorConvocatoria>();

                                                           ProyectoPC = await(from ppc in _db.ProyectoPorConvocatoria
                                                                              where ppc.ConvocatoriaId == ConvocatoriaId
                                                                              select ppc)
                                                                        .Include(e => e.Proyecto)
                                                                        .Include(e => e.Convocatoria)
                                                                        .AsNoTracking()
                                                                        .ToListAsync();

                                                           //unidades organizacionales de los proyectos en la convocatoria
                                                           List <String> uos1 = new List <string>(ProyectoPC.Select(x => x.Proyecto.UnidadOrganizacionalId.Trim()));

                                                           //Unidades organizacionales de acuerdo a la UO seleccionada en el formulario
                                                           UORepository uo       = new UORepository(_dbGen);
                                                           var          unidades = await uo.GetByIdWithChildren(ClaveUnidad);

                                                           var unidSel = await uo.UnidadActualWithoutStatus(ClaveUnidad);

                                                           List <String> uos2 = null;

                                                           if (ClaveUnidad == "")
                                                           {
                                                               uos2 = uos1;
                                                           }
                                                           else
                                                           {
                                                               uos2 = new List <string>(unidades.Children.Select(x => x.ClaveUnidad));
                                                               uos2.Add(unidSel.ClaveUnidad.ToString());
                                                           }


                                                           var ProyectoPCSelect = new List <ProyectoPorConvocatoria>();

                                                           foreach (ProyectoPorConvocatoria ppc in ProyectoPC)
                                                           {
                                                               var unidadId = ppc.Proyecto.UnidadOrganizacionalId.Trim();
                                                               var vigencia = "Inactiva";
                                                               if (uos2.Contains(unidadId))
                                                               {
                                                                   ProyectosFF obj = new ProyectosFF();
                                                                   obj.NumProy      = ppc.ProyectoId;
                                                                   obj.NombreProy   = ppc.Proyecto.Nombre;
                                                                   obj.FInicioProy  = ppc.Proyecto.FechaInicio;
                                                                   obj.FTerminoProy = ppc.Proyecto.FechaFin;
                                                                   obj.MontoProy    = ppc.Proyecto.Costo;

                                                                   var unid = await uo.UnidadActualWithoutStatus(unidadId);

                                                                   obj.Claveunidad = unidadId;
                                                                   obj.UnidadProy  = unid.NombreUnidad;

                                                                   obj.FondoProgramaId = ppc.Convocatoria.FondoProgramaId;
                                                                   var fond = await(from nfond in _db.FondoPrograma
                                                                                    where nfond.FondoProgramaId == ppc.Convocatoria.FondoProgramaId
                                                                                    select nfond).FirstOrDefaultAsync();

                                                                   obj.NombreF = fond.NombreFP;
                                                                   obj.FuenteFinanciamientoId = fond.FuenteFinanciamientoId;

                                                                   var fuent = await(from nfue in _db.FuenteFinanciamiento
                                                                                     where nfue.FuenteFinanciamientoId == fond.FuenteFinanciamientoId
                                                                                     select nfue).FirstOrDefaultAsync();

                                                                   obj.NombreFF = fuent.NombreFF;
                                                                   //obj.TipoFuenteFinanciamientoId = fuent.TipoFuenteFinanciamientoId;

                                                                   obj.NombreTipoFF = await(from ntfue in _db.TipoFuenteFinanciamiento
                                                                                            //where ntfue.TipoFuenteFinanciamientoId == fuent.TipoFuenteFinanciamientoId
                                                                                            select ntfue.Nombre).FirstOrDefaultAsync();

                                                                   obj.ConvocatoriaId = ppc.ConvocatoriaId;
                                                                   obj.NombreC        = ppc.Convocatoria.NombreConvocatoria;

                                                                   if (ppc.Convocatoria.FechaTermino > DateTime.Now)
                                                                   {
                                                                       vigencia = "Activa";
                                                                   }

                                                                   obj.VigenciaC = vigencia;
                                                                   ProyectosFF.Add(obj);
                                                               }
                                                           }

                                                           return(ProyectosFF);
                                                       }
Ejemplo n.º 3
0
        public async Task <IEnumerable <Insumos> > getData(DataServerSide ss)
        {
            try
            {
                int EstadoITFFlujoId = 4;
                var v = (from a in
                         _db.dbSetInsumos
                         .Include(x => x.InformeTecnicoFinal.Proyecto)
                         .Include(x => x.TipoAcceso)
                         .Include(x => x.TipoInsumo)
                         .Where(x => x.InformeTecnicoFinal.EstadoITFFlujoId == EstadoITFFlujoId)
                         select a);
                ss.recordsTotal = v.Count();


                //search
                if (!string.IsNullOrEmpty(ss.ClaveUnidad))
                {
                    UORepository uo  = new UORepository(_dbGen);
                    var          uni = await uo.GetByIdWithChildren(ss.ClaveUnidad);

                    HashSet <String> clavesUnidad = null;
                    if (uni.tipoO < 3)
                    {
                        var unidades = uni.Children.Select(x => x.ClaveUnidad).ToList();
                        clavesUnidad = new HashSet <String>(unidades);
                        var x2 = await uo.GetAllCollectionMAX(clavesUnidad);
                    }
                    else
                    {
                        clavesUnidad = new HashSet <String>();
                        clavesUnidad.Add(ss.ClaveUnidad);
                    }

                    v = v.Where(e => clavesUnidad.Contains(e.InformeTecnicoFinal.Proyecto.UnidadOrganizacionalId));
                }



                //BUSCAR POR
                if (!String.IsNullOrEmpty(ss.palabras))
                {
                    var listaDA0 = await GetPKInsumo(ss.palabras);

                    var listaDA2 = await GetPKInsumoUbicacion(ss.palabras);

                    var listaDA3 = await GetPKInsumoResponsable(ss.palabras);



                    v = v.Where(e =>
                                listaDA0.Contains(e.InsumosId) ||
                                listaDA2.Contains(e.InsumosId) ||
                                listaDA3.Contains(e.InsumosId)
                                );
                }


                if (!String.IsNullOrEmpty(ss.searchValue))
                {
                    var p = ss.searchValue;


                    var listaDA0 = await GetPKInsumo(ss.searchValue);

                    var listaDA2 = await GetPKInsumoUbicacion(ss.searchValue);

                    var listaDA3 = await GetPKInsumoResponsable(ss.searchValue);

                    var tipoInsumo = await GetTipoInsumo(ss.searchValue);



                    v = v.Where(e => listaDA0.Contains(e.InsumosId) ||
                                listaDA3.Contains(e.InsumosId) ||
                                listaDA2.Contains(e.InsumosId)

                                || tipoInsumo.Contains(e.TipoIns)
                                );
                }



                if (!String.IsNullOrEmpty(ss.proyectoId))
                {
                    var listaDA0 = await GetDAProyecto(ss.proyectoId);

                    v = v.Where(e => listaDA0.Contains(e.InformeTecnicoFinalId));
                }


                //TIPO DE INSUMO
                if (!String.IsNullOrEmpty(ss.Tipo))
                {
                    var listaDA0 = await GetTipoInsumoID(ss.Tipo);

                    v = v.Where(e => listaDA0.Contains(e.TipoIns));
                }


                if (!String.IsNullOrEmpty(ss.NumjefeProyecto))
                {
                    var listaDA0 = await GetJefeProyecto(ss.NumjefeProyecto);

                    v = v.Where(e => listaDA0.Contains(e.InformeTecnicoFinalId));
                }
                //sort
                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir)))
                {
                    //for make sort simpler we will add Syste.Linq.Dynamic reference
                    v = v.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);
                }

                ss.recordsFiltered = v.Count();
                var entities = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync();

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