public async Task <IHttpActionResult> getData([FromBody] DataServerSide ss)//DataTableParameters parameters)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                var draw2 = HttpContext.Current.Request.Form["search[value]"];

                // DataServerSide ss = new DataServerSide(HttpContext.Current.Request, parameters);
                if (String.IsNullOrEmpty(ss.EstadoFlujoId))
                {
                    throw new Exception("No se estableció un EstadoFlujoId");
                }
                var entities = await dbITF.getData(ss);

                var result = new
                {
                    draw            = ss.draw,
                    recordsFiltered = ss.recordsFiltered,
                    recordsTotal    = ss.recordsTotal,
                    data            = entities
                };

                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
Beispiel #2
0
        public async Task <IEnumerable <Empresa> > getDataComun(DataServerSide ss)
        {
            try
            {
                var v = (from a in
                         _db.Empresa
                         select a);

                ss.recordsTotal = v.Count();
                //search
                if (!string.IsNullOrEmpty(ss.searchValue))
                {
                    v = v.Where(e =>
                                e.NombreEmpresa.Contains(ss.searchValue) ||
                                e.NombreTitular.ToString().Contains(ss.searchValue) ||
                                e.RazonSocial.ToString().Contains(ss.searchValue));
                }

                //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);
            }
        }
        public async Task <IHttpActionResult> getData([FromBody] DataServerSide ss)
        {
            try
            {
                var draw2 = HttpContext.Current.Request.Form["search[value]"];

                //DataServerSide ss = new DataServerSide(HttpContext.Current.Request, parameters);

                var entities = await _repository.getData(ss);

                var result = new
                {
                    draw            = ss.draw,
                    recordsFiltered = ss.recordsFiltered,
                    recordsTotal    = ss.recordsTotal,
                    data            = entities
                };

                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
Beispiel #4
0
        public async Task <IEnumerable <Contacto> > getContactosUnidad(DataServerSide ss)
        {
            try
            {
                var v = (from a in
                         _db.Contacto.Include(e => e.Empresa)
                         .Include(f => f.Adjunto)
                         .Include(u => u.UnidadOrganizacionalEmpresas)
                         .Where(u => u.ClaveUnidad == ss.ClaveUnidad)
                         select a);

                ss.recordsTotal = v.Count();

                //sort
                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir)))
                {
                    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);
            }
        }
Beispiel #5
0
        public async Task <IEnumerable <Proyecto> > getAllTecnicosServerSide(DataServerSide ss)
        {
            /***** DESCRIPCION DE LOS SUBPROGRAMAS DE PROYECTOS TECNICOS ***/

            /*
             *  61 DESARROLLO DE INFRAESTRUCTURA TECNOLÓGICA
             *  63 DESARROLLO DE APLICACIONES TECNOLÓGICAS POR CONTRATO
             *  65 PROYECTOS CONTRATADOS POR LA SECRETARÍA DE ENERGÍA.
             *  67 PROYECTOS ACORDADOS CON  C F E 
             *  68 PROYECTOS INTERNOS
             *
             *
             * NOTA: Se omiten los proyectos administrativos o internos
             * como apoyo a la gerencia, capacidad disponible, vacaciones, etc.
             *
             */

            try
            {
                var v = (from a in
                         _dbGen.dbSetProyectoGEN
                         .Where(p => p.EmpresaId == null && (p.SubPrograma == "61" ||
                                                             p.SubPrograma == "63" ||
                                                             p.SubPrograma == "65" ||
                                                             p.SubPrograma == "67" ||
                                                             p.SubPrograma == "68")
                                )
                         select a).AsNoTracking();

                ss.recordsTotal = v.Count();

                //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);
                }
                if (!String.IsNullOrEmpty(ss.searchValue))
                {
                    var listafks = await GetProyectosLikeNombreLatin1(ss.searchValue);

                    var listafksautores = await GetProyectosByJefeProyectoLatin1(ss.searchValue);

                    v = v.Where(e => listafks.Contains(e.ProyectoId) || e.ProyectoId == ss.searchValue || listafksautores.Contains(e.ProyectoId));
                }

                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);
            }
        }
Beispiel #6
0
        //Obtener "todos"  con ServerSide by ACH
        public async Task <IEnumerable <Contacto> > getData(DataServerSide ss)
        {
            try
            {
                var v = (from a in
                         _db.Contacto.Include(e => e.Empresa)
                         .Include(f => f.Adjunto)
                         .Include(g => g.TituloPersona)
                         select a);

                ss.recordsTotal = v.Count();
                //search
                if (!string.IsNullOrEmpty(ss.searchValue))
                {
                    var idsContactos = await GetContactosByCollateLatin(ss.searchValue);

                    var contactoestado = await GetEstadoContactoByCollateLatin(ss.searchValue);

                    var empresasContactos = await GetEmpresasContactosByCollateLatin(ss.searchValue);

                    v = v.Where(e =>
                                e.Empresa.NombreEmpresa.Contains(ss.searchValue) ||
                                idsContactos.Contains(e.ContactoId) ||
                                e.Puesto.ToString().Contains(ss.searchValue) ||
                                contactoestado.Contains(e.ContactoId) ||
                                empresasContactos.Contains(e.ContactoId)
                                );
                }

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

                foreach (var contact in entities)
                {
                    contact.empresas = await _db.ContactoPuestoHistorico
                                       .Include(e => e.Empresa)
                                       .Where(x => x.ContactoId == contact.ContactoId)
                                       .Select(x => x.Empresa.NombreEmpresa)
                                       .Distinct()
                                       .AsNoTracking().ToListAsync();
                }

                return(entities);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Beispiel #7
0
        public async Task <IEnumerable <Contacto> > getDataByTrue(DataServerSide ss)
        {
            try
            {
                var v = (from a in
                         _db.Contacto.Include(e => e.Empresa)
                         .Include(f => f.Adjunto)
                         .Where(c => c.Estado == true)
                         select a);
                var listapaisesid = v.ToList().Select(e => e.PaisOrigenId);
                var listapaises   = _dbGen.dbSetPais.Where(e => listapaisesid.Contains(e.PaisId)).ToList();


                ss.recordsTotal = v.Count();
                //search
                if (!string.IsNullOrEmpty(ss.searchValue))
                {
                    var idsContactos = await GetContactosByCollateLatin(ss.searchValue);

                    var contactoestado = await GetEstadoContactoByCollateLatin(ss.searchValue);

                    v = v.Where(e =>
                                e.Empresa.NombreEmpresa.Contains(ss.searchValue) ||
                                idsContactos.Contains(e.ContactoId) ||
                                e.Puesto.ToString().Contains(ss.searchValue) ||
                                contactoestado.Contains(e.ContactoId));
                }

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

                foreach (var contacto in entities)
                {
                    contacto.PaisOrigen = listapaises.Find(e => e.PaisId == contacto.PaisOrigenId);
                }
                return(entities);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task <IHttpActionResult> getData([FromBody] DataServerSide ss)
        {
            try
            {
                var entities = await _repository.getData(ss);

                var result = new
                {
                    ss.draw,
                    ss.recordsFiltered,
                    ss.recordsTotal,
                    data = entities
                };

                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                return(InternalServerError(e));
            }
        }
Beispiel #9
0
        public async Task <Object> GetDataFirst(DataServerSide ss)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                var entities = await _repository.GetDataFirst(ss);

                var result = new
                {
                    //draw = ss.draw,
                    //recordsFiltered = ss.recordsFiltered,
                    recordsTotal = ss.recordsTotal,
                    data         = entities
                };
                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                throw new Exception(e.Message, e);
            }
        }
Beispiel #10
0
        public async Task <IHttpActionResult> busquedaProyectos([FromBody] DataServerSide ss)//Uso exclusivo para el modal de proyectos [el cual es generico]
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                if (String.IsNullOrEmpty(ss.SubprogramasProyecto))
                {
                    //string subprogramas = ConfigurationManager.AppSettings["proyectosSubProgramas"];
                    //ss.ListaSubprogramas = subprogramas.Split(',').ToList<String>();
                    var subprogramas = ListaSubprogramasProyecto.subprogramas;
                    ss.ListaSubprogramas = subprogramas.Split(',').ToList <String>();
                }
                else
                {
                    ss.ListaSubprogramas = ss.SubprogramasProyecto.Split(',').ToList <String>();
                }

                var entities = await _proyectosRepo.busquedaProyectos(ss);

                var result = new
                {
                    ss.draw,
                    ss.recordsFiltered,
                    ss.recordsTotal,
                    data = entities
                };

                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                log.Error(new MDCSet(this.ControllerContext.RouteData), e); // ex||error||e||etc|| new Exception("Custom description Error")
                return(InternalServerError(e));
            }
        }
        public async Task <IHttpActionResult> GetAllTecnicosServerSide([FromBody] DataServerSide ss)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                var entities = await _proyectosEmpresaRepo.getAllTecnicosServerSide(ss);

                var result = new
                {
                    draw            = ss.draw,
                    recordsFiltered = ss.recordsFiltered,
                    recordsTotal    = ss.recordsTotal,
                    data            = entities
                };

                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
Beispiel #12
0
        public async Task <IEnumerable <Capitulos> > getData(DataServerSide ss)
        {
            List <Capitulos> ListCursoInterno = new List <Capitulos>();

            try
            {
                var v = (from a in _db.dbSetCapitulos.Where(e => e.EstadoFlujoId == 3)    select a);

                ss.recordsTotal = v.Count();

                if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo
                {
                    var listaDA = await GetDALikeTituloLibroNuevo(ss.Titulo);

                    v = v.Where(e => listaDA.Contains(e.CapitulosId));
                }

                if (!String.IsNullOrEmpty(ss.Capitulo)) //busqueda por titulo
                {
                    var listaDA = await GetDALikeTituloCapituloNuevo(ss.Capitulo);

                    v = v.Where(e => listaDA.Contains(e.CapitulosId));
                }

                //País
                if (!string.IsNullOrEmpty(ss.Tipo))
                {
                    v = v.Where(e => e.Pais.ToString().Equals(ss.Tipo));
                }

                if (!string.IsNullOrEmpty(ss.Autor)) //Autor externo
                {
                    var AutoresE = await GetPKAutorExternoByCollateLatin1(ss.Autor);

                    v = v.Where(e => AutoresE.Contains(e.CapitulosId));
                }

                if (!string.IsNullOrEmpty(ss.Becario)) //Tomado como autor interno
                {
                    var entiti = await _db.dbSetAutorInternoCapitulo
                                 .Where(e => e.ClavePersona.ToString().Contains(ss.Becario))
                                 .Include(e => e.Capitulos)
                                 .AsNoTracking().ToListAsync();

                    if (entiti.Count == 0)
                    {
                        var reg = new AutorInternoCapitulo();
                        reg.CapitulosId = -1;
                        v = v.Where(e => e.CapitulosId == reg.CapitulosId

                                    );
                    }
                    else
                    {
                        HashSet <String> claves = null;
                        var registros           = entiti.Select(x => x.CapitulosId.ToString()).ToList();
                        claves = new HashSet <String>(registros);
                        v      = v.Where(e => claves.Contains(e.CapitulosId.ToString()));
                    }
                }


                //caja
                if (!string.IsNullOrEmpty(ss.searchValue))
                {
                    var p = ss.searchValue.ToLower();

                    var listaDA = await GetDALikeTituloLibroNuevo(ss.searchValue);

                    var listaDC = await GetDALikeTituloCapituloNuevo(ss.searchValue);

                    var listaDE = await GetDALikeEditorialNuevo(ss.searchValue);

                    v = v.Where(e => listaDA.Contains(e.CapitulosId) || e.Year.ToString().Contains(p) || listaDC.Contains(e.CapitulosId) || listaDE.Contains(e.CapitulosId));
                }


                if (!String.IsNullOrEmpty(ss.Editorial))
                {
                    var listaDA = await GetDALikeEditorialNuevo(ss.Editorial);

                    v = v.Where(e => listaDA.Contains(e.CapitulosId));
                }


                if (!String.IsNullOrEmpty(ss.Editor)) //busqueda por titulo
                {
                    var listaDA = await GetDALikeEditor(ss.Editor);

                    v = v.Where(e => listaDA.Contains(e.CapitulosId));
                }

                //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.OrderByDescending(e => e.Year));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Beispiel #13
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);
            }
        }
Beispiel #14
0
        public async Task <Object> getData(DataServerSide ss)
        {
            try
            {
                var dat = (from p in _dbch.BecarioExternoINEEL.AsNoTracking().Include(e => e.TipoBeca).Include(e => e.Institucion).Include(e => e.EstadoFlujo)
                           select new
                {
                    p.BecarioId,
                    p.NombreBecario,
                    p.ClaveBecario,
                    p.NombreAsesor,
                    p.ClaveAsesor,
                    p.InstitucionId,
                    Institucion = p.Institucion.Descripcion,
                    p.TituloEstancia,
                    p.FechaInicio,
                    p.FechaTermino,
                    p.FechaValidacion,
                    p.TipoBecaId,
                    p.EstadoFlujoId,
                    Estado = p.EstadoFlujo.Descripcion,
                    TipoBeca = p.TipoBeca.Descripcion,
                    p.ClavePersona,
                    p.PersonalIneel,
                    p.ProyectoId
                });

                if (!String.IsNullOrEmpty(ss.esEmpleado)) //busqueda solamente por registros de empleados
                {
                    dat = dat.Where(x => x.ClavePersona == null);
                }

                if (!String.IsNullOrEmpty(ss.Tipo)) //busqueda solamente por registros de empleados
                {
                    dat = dat.Where(x => x.EstadoFlujoId == 3);
                }

                //Si los registros se cuentan antes dara un dato erroneo al usuario
                ss.recordsTotal = dat.ToList().Count();

                if (!String.IsNullOrEmpty(ss.Becario)) //busqueda por nombre del becario
                {
                    var idsBecarios = await GetBecariosPorNombreBusquedaColacion(ss.Becario);

                    dat = dat.Where(x => idsBecarios.Contains(x.BecarioId));
                }


                if (!String.IsNullOrEmpty(ss.estancia)) //busqueda por estancia del becario
                {
                    var idsBecarios = await GetBecariosPorEstanciaBusquedaColacion(ss.estancia);

                    dat = dat.Where(x => idsBecarios.Contains(x.BecarioId));
                }

                if (!String.IsNullOrEmpty(ss.Autor)) //busqueda por asesor
                {
                    dat = dat.Where(x => x.ClaveAsesor == ss.Autor);
                }

                if (!String.IsNullOrEmpty(ss.Institucion)) //busqueda por institucion
                {
                    var institucionId = Convert.ToInt32(ss.Institucion);
                    dat = dat.Where(x => x.InstitucionId == institucionId);
                }

                if (ss.TipoBeca != 0) //busqueda por tipo beca
                {
                    dat = dat.Where(x => x.TipoBecaId == ss.TipoBeca);
                }

                if (ss.proyectoId != null) //busqueda por proyecto
                {
                    dat = dat.Where(x => x.ProyectoId == ss.proyectoId);
                }

                if (!String.IsNullOrEmpty(ss.palabras))
                {
                    var ids = await GetBecariosPorNombreEstanciaBusquedaColacion(ss.palabras);

                    dat = dat.Where(x => ids.Contains(x.BecarioId));
                }

                if (!String.IsNullOrEmpty(ss.busquedaFecha))  //busqueda por fecha
                {
                    //var fechaInicio = new DateTime(1975, 10, 25);
                    //var fechaFin = DateTime.Now;
                    //if (!String.IsNullOrEmpty(ss.NuevaFechaInicio))
                    //{
                    //    fechaInicio = DateTime.Parse(ss.NuevaFechaInicio);
                    //}
                    //if (!String.IsNullOrEmpty(ss.NuevaFechaTermino))
                    //{
                    //    fechaFin = DateTime.Parse(ss.NuevaFechaTermino);
                    //}
                    var fechaInicio = Convert.ToDateTime(ss.NuevaFechaInicio);
                    var fechaFin    = Convert.ToDateTime(ss.NuevaFechaTermino);

                    dat = dat.Where(e => (DbFunctions.TruncateTime(e.FechaInicio) >= DbFunctions.TruncateTime(fechaInicio) &&
                                          DbFunctions.TruncateTime(e.FechaTermino) <= DbFunctions.TruncateTime(fechaFin)));
                }

                if (!String.IsNullOrEmpty(ss.searchValue)) //busqueda por la caja de filtro
                {
                    var idsBecarios = await GetBecariosPorNombreBusquedaColacion(ss.searchValue);

                    var idsInstituciones = await GetInstitucionesPorNombreBusquedaColacion(ss.searchValue);

                    var idsTiposBecas = await GetTiposBecaPorNombreBusquedaColacion(ss.searchValue);

                    var idsAsesores = await GetUsuariosPorNombreBusquedaColacion(ss.searchValue);

                    var estados = await GetPorEstadoRegistroBusquedaColacion(ss.searchValue);

                    dat = dat.Where(x => idsBecarios.Contains(x.BecarioId) ||
                                    x.FechaInicio.ToString().Contains(ss.searchValue) ||
                                    x.FechaTermino.ToString().Contains(ss.searchValue) ||
                                    idsInstituciones.Contains(x.InstitucionId) ||
                                    idsTiposBecas.Contains(x.TipoBecaId) ||
                                    idsAsesores.Contains(x.BecarioId) ||
                                    x.ClaveBecario.Contains(ss.searchValue) ||
                                    x.TituloEstancia.Contains(ss.searchValue) ||
                                    estados.Contains(x.EstadoFlujoId));
                }

                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir))) //ordenamiento
                {
                    dat = dat.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);
                }


                ss.recordsFiltered = dat.Count();
                var entidades = dat.ToList().Skip(ss.skip).Take(ss.pageSize);
                return(entidades);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        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);
            }
        }
        public async Task <IEnumerable <SoftwarePersonal> > getData(DataServerSide ss)
        {
            UORepository uo = new UORepository();

            try
            {
                var v = (from a in
                         _db.dbSetSoftwarePersonal
                         .Include(x => x.Proyecto)
                         .Include(x => x.TipoSoftware)
                         .Include(x => x.Autores)
                         .Include(x => x.DerechosAutor)
                         .Where(x => x.EstadoFlujoId == 3)
                         select a);
                ss.recordsTotal = v.Count();



                if (!string.IsNullOrEmpty(ss.ClaveUnidad))
                {
                    //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);
                    //}
                    //else
                    //{
                    //    clavesUnidad = new HashSet<String>();
                    //    clavesUnidad.Add(ss.ClaveUnidad);
                    //}

                    v = v.Where(x => x.GerenciaClave == ss.ClaveUnidad);

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


                if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo
                {
                    var listaDA = await GetPKTitulo(ss.Titulo);

                    v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId));
                }


                if (!String.IsNullOrEmpty(ss.proyectoId))
                {
                    var listaDA = await GetDALikeProyecto(ss.proyectoId);

                    v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId));
                }

                //if (!String.IsNullOrEmpty(ss.DerechoAutor))
                //{
                //    var listaDA = await GetPKDerechoAutor(ss.DerechoAutor);
                //    v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId));
                //}

                if (ss.DerechosAutorId != null)
                {
                    v = v.Where(x => x.DerechosAutorId == ss.DerechosAutorId);
                }

                if (!String.IsNullOrEmpty(ss.Tipo))
                {
                    v = v.Where(e => e.TipoSoftwareId.ToString().Equals(ss.Tipo));
                }

                if (!String.IsNullOrEmpty(ss.Autor))
                {
                    var listaDA = await GetPKAutor(ss.Autor);

                    v = v.Where(e => listaDA.Contains(e.SoftwarePersonalId));
                }

                if (!String.IsNullOrEmpty(ss.searchValue))
                {
                    PersonasRepository rp = new PersonasRepository();
                    var clavesPer         = await rp.GetAllClavesByLikeNombreLatin1(ss.searchValue);

                    //var autor= await
                    var softwares = await _db.dbSetAutorSoftware.AsNoTracking()
                                    .Where(x => clavesPer.Contains(x.ClaveAutor))
                                    .Select(x => x.SoftwarePersonalId)
                                    .ToListAsync();

                    var listaUnidades = await uo.GetPorNombreUnidad(ss.searchValue);

                    var titulo = await GetPKTitulo(ss.searchValue);

                    var tipoSoftware = await GetPKTipoSoftware(ss.searchValue);

                    var proyecto = await GetProyectos(ss.searchValue);

                    var proyecto2 = await GetProyectos2(ss.searchValue);

                    var listaDA = await GetDerechosAutorByCollate(ss.searchValue);

                    //var listaAutor = await GetProyectos(ss.searchValue);


                    v = v.Where(e => titulo.Contains(e.SoftwarePersonalId) ||
                                listaDA.Contains(e.DerechosAutorId) ||
                                softwares.Contains(e.SoftwarePersonalId) ||
                                listaUnidades.Contains(e.GerenciaClave) ||
                                proyecto.Contains(e.ProyectoId) ||
                                proyecto2.Contains(e.ProyectoId) ||
                                tipoSoftware.Contains(e.TipoSoftwareId)


                                );
                }


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

                if (entities != null && entities.Count > 0)
                {
                    AutorSoftwareRepository aut = new AutorSoftwareRepository(_db);
                    var listaSW       = entities.Select(x => x.SoftwarePersonalId).ToList();
                    var clavesAutores = await aut.GetClavesAutorBySoftwarsIdCollection(listaSW);

                    HashSet <String> clavesEmpleado = new HashSet <string>(clavesAutores);


                    PersonasRepository p = new PersonasRepository();
                    var personas         = await p.GetAllCollectionMAXTodos(clavesEmpleado);

                    List <Personas> pers = personas.ToList();

                    //var unidadesOrgs = (await uo.GetAllCollectionMAX(entities.Where(x => x.Proyecto != null).Select(x => x.Proyecto.UnidadOrganizacionalId).ToList())).ToList();
                    foreach (var e in entities)
                    {
                        foreach (var a in e.Autores)
                        {
                            try
                            {
                                string cad = a.ClaveAutor.Trim();
                                a.ClaveAutor     = a.ClaveAutor.Trim();
                                a.NombreCompleto = pers.Find(x => x.ClavePersona == cad).NombreCompleto;
                            }
                            catch (Exception ex) { }
                        }


                        if (e.GerenciaClave != null)
                        {
                            e.NombreUnidadOrganizacional = await uo.GetNameById(e.GerenciaClave);
                        }
                    }
                }
                return(entities);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Beispiel #17
0
        public async Task <IEnumerable <Publicacion> > getData(DataServerSide ss)
        {
            List <Publicacion> ListPublicacion = new List <Publicacion>();

            try
            {
                var v = (from a in
                         _ctx.Publicacion.Where(e => e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                         .Include(e => e.Revista)
                         .Include(e => e.Ambito)
                         .Include(e => e.NivelPublicacion)
                         .Include(e => e.EstadoPublicacion)
                         .OrderByDescending(e => e.FechaPublicacion)

                         select a);

                ss.recordsTotal = v.Count();



                if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo
                {
                    var listaDA = await GetDALikeTituloNuevo(ss.Titulo);

                    v = v.Where(e => listaDA.Contains(e.PublicacionId));
                }

                if (!String.IsNullOrEmpty(ss.porContenido))
                {
                    v = v.Where(e => e.RevistaId.ToString().Equals(ss.porContenido));
                }

                if (!string.IsNullOrEmpty(ss.Autor)) //Autor externo
                {
                    var AutoresE = await GetPKAutorExternoByCollateLatin1(ss.Autor);

                    v = v.Where(e => AutoresE.Contains(e.PublicacionId));
                }

                if (!string.IsNullOrEmpty(ss.Becario)) //Tomado como autor interno
                {
                    var entiti = await _ctx.AutorIIEPublicacion
                                 .Where(e => e.ClavePersona.ToString().Contains(ss.Becario) &&
                                        (e.Publicacion.EstadoFlujoId == 3 || e.Publicacion.EstadoFlujoId == 11 || e.Publicacion.EstadoFlujoId == 12 || e.Publicacion.EstadoFlujoId == 13))
                                 .Include(e => e.Publicacion)
                                 .AsNoTracking().ToListAsync();

                    if (entiti.Count == 0)
                    {
                        var reg = new AutorIIEPublicacion();
                        reg.PublicacionId = -1;
                        v = v.Where(e => e.PublicacionId == reg.PublicacionId &&
                                    (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                    );
                    }
                    else
                    {
                        HashSet <String> claves = null;
                        var registros           = entiti.Select(x => x.PublicacionId.ToString()).ToList();
                        claves = new HashSet <String>(registros);


                        v = v.Where(e =>
                                    claves.Contains(e.PublicacionId.ToString()) &&
                                    (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                    );
                    }
                }



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

                    var listaDA = await GetDALikeTituloNuevo(ss.searchValue);

                    var listaDR = await GetDALikeRevista(ss.searchValue);

                    v = v.Where(e => listaDA.Contains(e.PublicacionId) || listaDR.Contains(e.RevistaId) || e.FechaPublicacion.ToString().Contains(p));
                }


                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir)))
                {
                    v = v.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);
                }
                ss.recordsFiltered = v.Count();
                entities           = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync();

                return(entities.OrderByDescending(e => e.FechaPublicacion));
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Beispiel #18
0
        public async Task <IEnumerable <BecarioExterno> > getData(DataServerSide ss)
        {
            try
            {
                var v = (from a in _db.BecarioExterno.Where(e => e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                         .Include(e => e.TipoBeca)
                         .Include(e => e.Proyecto)
                         .Include(e => e.Institucion)
                         select a);

                List <string> clavesP = new List <string>(v.Select(x => x.Becario_ClavePersona));

                List <Personas> Personas = await _gen.dbSetPersonas.Where(x => clavesP.Contains(x.ClavePersona))
                                           .AsNoTracking().ToListAsync();

                ss.recordsTotal = v.Count();
                //search
                if (!string.IsNullOrEmpty(ss.Autor))
                {
                    v = v.Where(e => e.Asesor_ClavePersona.Contains(ss.Autor) &&
                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13));
                }
                if (!string.IsNullOrEmpty(ss.Becario))
                {
                    v = v.Where(e => e.Becario_ClavePersona.Contains(ss.Becario) &&
                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13));
                }
                if (!string.IsNullOrEmpty(ss.Titulo))
                {
                    var pal = ss.Titulo.Split(' ');
                    foreach (var pa in pal)
                    {
                        var p = pa.ToLower();
                        v = v.Where(e => (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13) &&
                                    e.Titulo.Contains(p)
                                    //||e.Proyecto.Nombre.Contains(p)
                                    //|| e.Descripcion.Contains(p))
                                    );
                    }
                }
                if (!string.IsNullOrEmpty(ss.Institucion))
                {
                    v = v.Where(e => e.InstitucionID.ToString().Contains(ss.Institucion) &&
                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                );
                }
                if (!string.IsNullOrEmpty(ss.proyectoId))
                {
                    v = v.Where(e => e.ProyectoId.ToString().Contains(ss.proyectoId) &&
                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                );
                }
                if (!string.IsNullOrEmpty(ss.Tipo))
                {
                    v = v.Where(e => e.TipoBecaId.ToString().Contains(ss.Tipo) &&
                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                );
                }

                //var fecTer = ss.FechaFin.AddHours(23);

                //if (ss.FechaFin > ss.FechaInicio)
                //{
                //    v = v.Where(e => (DbFunctions.TruncateTime(e.FechaInicio) > DbFunctions.TruncateTime(ss.FechaInicio)) && (DbFunctions.TruncateTime(ss.FechaFin) < DbFunctions.TruncateTime(e.FechaTermino)));
                //}

                if (!string.IsNullOrEmpty(ss.NuevaFechaInicio) || !string.IsNullOrEmpty(ss.NuevaFechaTermino))
                {
                    var listaDA = await GetPorfecha(ss.NuevaFechaInicio, ss.NuevaFechaTermino);

                    v = v.Where(e => listaDA.Contains(e.BecarioExternoId));
                }


                //caja
                if (!string.IsNullOrEmpty(ss.searchValue))
                {
                    //var pal = ss.searchValue.Split(' ');
                    //foreach (var pa in pal)
                    //{
                    var p = ss.searchValue.ToLower();
                    v = v.Where(e => e.Proyecto.Nombre.Contains(p)
                                //|| e.ProyectoId.ToString().Contains(p)
                                || e.FechaInicio.ToString().Contains(p) ||
                                e.FechaTermino.ToString().Contains(p) ||
                                e.Titulo.Contains(p) ||
                                e.Becario_Nombre.Contains(p) ||
                                e.Institucion.Descripcion.Contains(p) ||
                                e.Asesor_Nombre.Contains(p) ||
                                e.TipoBeca.Descripcion.Contains(p) &&
                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                );
                    //}
                }

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

                foreach (var item in entities)
                {
                    var perso = Personas.Find(x => x.ClavePersona == item.Becario_ClavePersona);
                    if (perso != null)
                    {
                        item.Becario_Nombre = perso.NombreCompleto;
                    }
                }

                return(entities);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task <IEnumerable <Object> > getData(DataServerSide ss)
        {
            try
            {
                //Consulta que devuelve un objeto IQueryable , para mas informacion : https://stackoverflow.com/questions/1578778/using-iqueryable-with-linq/1578809#1578809
                var data = (from a in _ctx.BecarioInterno.AsNoTracking().Include(e => e.EstadoFlujo).Include(e => e.BecaInterna).Include(e => e.Institucion)
                            select a);


                if (!String.IsNullOrEmpty(ss.Tipo)) //Filtrado por estado flujo
                {
                    data = data.Where(x => x.EstadoFlujoId == 3);
                }

                ss.recordsTotal = data.Count();

                if (!String.IsNullOrEmpty(ss.Becario)) //busqueda por clave de empleado (becario)
                {
                    data = data.Where(x => x.ClavePersona.Contains(ss.Becario));
                }

                if (!string.IsNullOrEmpty(ss.Institucion))  //busqueda por institucion
                {
                    var id = Convert.ToInt32(ss.Institucion);
                    data = data.Where(x => x.InstitucionID == id);
                }

                if (ss.TipoBeca != 0)  //Tipo de beca interna
                {
                    data = data.Where(x => x.BecaInternaId == ss.TipoBeca);
                }

                if (!String.IsNullOrEmpty(ss.busquedaFecha))  //busqueda por fecha
                {
                    var fechaInicio  = Convert.ToDateTime(ss.NuevaFechaInicio);
                    var fechaTermino = Convert.ToDateTime(ss.NuevaFechaTermino);
                    data = data.Where(x => (DbFunctions.TruncateTime(x.FechaInicioBeca) >= DbFunctions.TruncateTime(fechaInicio) &&
                                            DbFunctions.TruncateTime(x.FechaTerminoBeca) <= DbFunctions.TruncateTime(fechaTermino)));
                }

                //caja
                if (!string.IsNullOrEmpty(ss.searchValue))
                {
                    var beca = await GetPorBecaTipo(ss.searchValue);

                    var institucion = await GetPorInstitucion(ss.searchValue);

                    var estados = await GetPorEstadoRegistroBusquedaColacion(ss.searchValue);

                    PersonasRepository p = new PersonasRepository();
                    var clavesPersonas   = await p.GetAllClavesByLikeNombreLatin1(ss.searchValue);

                    data = data.Where(e => e.FechaInicioBeca.ToString().Contains(ss.searchValue) ||
                                      e.FechaTerminoBeca.ToString().Contains(ss.searchValue) ||
                                      beca.Contains(e.BecaInternaId) ||
                                      institucion.Contains(e.InstitucionID) ||
                                      estados.Contains(e.EstadoFlujoId) ||
                                      e.ClavePersona.Contains(ss.searchValue) ||
                                      clavesPersonas.Contains(e.ClavePersona));
                }

                /**Esta solucion se implenta porque los registros se querian ordenar por el nombre de la persona */
                /**La coleccion de becarios internos no contiene una llave foranea, por lo que desde el inicio no se pueden traer los nombres de las personas */
                /**El objeto IQueryable (la coleccion)  no permite joins entre multiples contextos, por lo que tampoco se puede obtener de manera inicial los nombres*/
                /**La unica manera fue crear multiples objetos que fueran filtrando  la informacion de poco a poco */
                var claves   = data.Select(x => x.ClavePersona).ToList();
                var Personas = await _db.dbSetPersonas.Where(x => claves.Contains(x.ClavePersona)).AsNoTracking().ToListAsync();

                //Primero obtenemos los nombres y los agregamos a la coleccion (nota: a un objeto de tipo Iqueryable no se le pueden agregar mas objetos o propiedades, ya que es de solo lectura hasta el momento)
                var tempCollection = data.ToList();
                foreach (var item in tempCollection)
                {
                    var perso = Personas.Find(x => x.ClavePersona == item.ClavePersona);
                    if (perso != null)
                    {
                        item.NombrePersona = perso.NombreCompleto;
                    }
                }

                //Aplicamos el ordenamiento
                IEnumerable <BecarioInterno> lista = new List <BecarioInterno>();
                //sort
                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir)))
                {
                    lista = tempCollection.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);  //Ordenamiento con dynamic linq
                }
                //Retornamos datos
                ss.recordsFiltered = lista.Count();
                var entities = lista.Skip(ss.skip).Take(ss.pageSize);


                //NOTA: En caso de que las condiciones del ordenamiento cambien descomentar el siguiente codigo, es mas optimo que el de arriba

                // if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir)))
                // {
                //     lista = tempCollection.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);

                // }

                // var claves = data.Select(x => x.ClavePersona).ToList();
                // var Personas = await _db.dbSetPersonas.Where(x => claves.Contains(x.ClavePersona)).AsNoTracking().ToListAsync();

                // foreach (var item in entities)
                // {
                //    var perso = Personas.Find(x => x.ClavePersona == item.ClavePersona);
                //    if (perso != null)
                //    {
                //        item.NombrePersona = perso.NombreCompleto;
                //    }
                // }

                // ss.recordsFiltered = data.Count();
                // var entities = data.Skip(ss.skip).Take(ss.pageSize);


                return(entities);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        //Uso exclusivo para el modal de proyectos [el cual es generico]
        public async Task <Object> getData(DataServerSide ss)
        {
            try
            {
                var dat = (from p in _ctx.dbSetProyectoGEN.AsNoTracking()
                           where ss.ListaSubprogramas.Contains(p.SubPrograma)
                           select new
                {
                    ProyectoId = p.ProyectoId,
                    Nombre = p.Nombre,
                    ClaveUnidad = p.UnidadOrganizacionalId,
                    NumjefeProyecto = p.NumjefeProyecto,
                    SubPrograma = p.SubPrograma,
                    p.EmpresaId
                });


                //Prefiltros: son especificos por cada modulo, al momento solo CR aplica
                if (!String.IsNullOrEmpty(ss.moduloBusqueda) && ss.moduloBusqueda.Equals("CR"))
                {
                    dat = dat.Where(e => e.EmpresaId != null && e.EmpresaId != 57); //Proyectos que no sean del INEEL
                }

                //Total de registros filtrados
                ss.recordsTotal = dat.ToList().Count();

                if (!String.IsNullOrEmpty(ss.proyectoId)) //busqueda por numero de proyecto
                {
                    var id = ss.proyectoId.ToUpper();
                    dat = dat.Where(x => x.ProyectoId.Contains(id));
                }

                if (!String.IsNullOrEmpty(ss.NombreProyecto)) //busqueda por nombre de proyecto
                {
                    var idProyectos = await GetAllProyectsByLikeNombreLatin1(ss.NombreProyecto);

                    dat = dat.Where(x => idProyectos.Contains(x.ProyectoId));
                }

                if (!String.IsNullOrEmpty(ss.searchValue)) //busqueda por la caja de filtro
                {
                    var idProyectos = await GetAllProyectsByLikeNombreLatin1(ss.searchValue);

                    var clavesProyectos = await GetAllProyectsByClaveProyecto(ss.searchValue);

                    dat = dat.Where(x => idProyectos.Contains(x.ProyectoId) || clavesProyectos.Contains(x.ProyectoId));
                }

                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir))) //ordenamiento
                {
                    dat = dat.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);
                }

                ss.recordsFiltered = dat.Count();
                var entidades = dat.ToList().Skip(ss.skip).Take(ss.pageSize);
                return(entidades);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task <Object> busquedaProyectos(DataServerSide ss)
        {
            try
            {
                var dat = (from p in _ctx.dbSetProyectoGEN.Include(e => e.Empresa).AsNoTracking()
                           where ss.ListaSubprogramas.Contains(p.SubPrograma)
                           select new
                {
                    p.ProyectoId,
                    p.Nombre,
                    ClaveUnidad = p.UnidadOrganizacionalId,
                    p.NumjefeProyecto,
                    p.SubPrograma,
                    p.EmpresaId,
                    NombreEmpresa = p.Empresa.NombreEmpresa,
                    p.UnidadOrganizacionalId,
                    NombreUnidad = (_ctx.dbSetUnidadOrganizacional.Where(x => x.ClaveUnidad == p.UnidadOrganizacionalId &&
                                                                         x.FechaEfectiva == _ctx.dbSetUnidadOrganizacional
                                                                         .Where(f => f.FechaEfectiva <= DateTime.Now &&
                                                                                f.ClaveUnidad == x.ClaveUnidad)
                                                                         .Max(f => f.FechaEfectiva)
                                                                         ).Select(x => x.NombreUnidad).FirstOrDefault())
                });

                ss.recordsTotal = dat.ToList().Count();

                if (!String.IsNullOrEmpty(ss.proyectoId)) //busqueda por numero de proyecto
                {
                    var id = ss.proyectoId.ToUpper();
                    dat = dat.Where(x => x.ProyectoId == id);
                }

                if (!String.IsNullOrEmpty(ss.NombreProyecto)) //busqueda por nombre de proyecto
                {
                    var idProyectos = await GetAllProyectsByLikeNombreLatin1(ss.NombreProyecto);

                    dat = dat.Where(x => idProyectos.Contains(x.ProyectoId));
                }

                if (!String.IsNullOrEmpty(ss.searchValue)) //busqueda por la caja de filtro
                {
                    var idProyectos = await GetAllProyectsByLikeNombreLatin1(ss.searchValue);

                    var clavesProyectos = await GetAllProyectsByClaveProyecto(ss.searchValue);

                    dat = dat.Where(x => idProyectos.Contains(x.ProyectoId) ||
                                    clavesProyectos.Contains(x.ProyectoId) ||
                                    x.NombreEmpresa.Contains(ss.searchValue) ||
                                    x.NombreUnidad.Contains(ss.searchValue));
                }

                if (!(string.IsNullOrEmpty(ss.sortColumn) && string.IsNullOrEmpty(ss.sortColumnDir))) //ordenamiento
                {
                    dat = dat.OrderBy(ss.sortColumn + " " + ss.sortColumnDir);
                }

                ss.recordsFiltered = dat.Count();
                var entidades = dat.ToList().Skip(ss.skip).Take(ss.pageSize);
                return(entidades);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Beispiel #22
0
                                                    public async Task <IHttpActionResult> getData([FromBody] DataServerSide ss, int id)
                                                    {
                                                        try{ log.Info(new MDCSet(this.ControllerContext.RouteData), new InfoException(id));                                 //id is EstadoITFFlujoId
                                                             var entities = await _entityRepo.getData(ss, id);

                                                             var result = new
                                                             {
                                                                 draw            = ss.draw,
                                                                 recordsFiltered = ss.recordsFiltered,
                                                                 recordsTotal    = ss.recordsTotal,
                                                                 data            = entities
                                                             };

                                                             return(Ok(result)); }
                                                        catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                                                                              return(InternalServerError(e)); }
                                                    }
                                                      [HttpPost] public async Task <IHttpActionResult> getData([FromBody] DataServerSide ss)
                                                      {
                                                          try {
                                                              var x111 = HttpContext.Current.Request;

                                                              /*var draw = HttpContext.Current.Request.Form["draw"];
                                                               * var draw2 = HttpContext.Current.Request.Form["nameColumns"];*/
                                                              var draw2 = HttpContext.Current.Request.Form["search[value]"];

                                                              //DataServerSide ss = new DataServerSide(HttpContext.Current.Request, parameters);
                                                              var entities = await _CongresoRepo.getData(ss);

                                                              //return Json(new {
                                                              //    draw = ss.draw,
                                                              //    recordsFiltered = ss.recordsTotal,
                                                              //    recordsTotal = ss.recordsTotal,
                                                              //    data = entities
                                                              //}
                                                              //);
                                                              //var Congresos = await _CongresoRepo.GetAll();

                                                              var result = new
                                                              {
                                                                  draw            = ss.draw,
                                                                  recordsFiltered = ss.recordsFiltered,
                                                                  recordsTotal    = ss.recordsTotal,
                                                                  data            = entities
                                                              };

                                                              return(Ok(result));
                                                          }
                                                          catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                                                                                return(InternalServerError(e)); }
                                                      }
Beispiel #24
0
                                                    public async Task <IEnumerable <Ponencia> > getData(DataServerSide ss)
                                                    {
                                                        List <Ponencia> ListCursoInterno = new List <Ponencia>();

                                                        try
                                                        {
                                                            var v = (from a in
                                                                     _ctx.Ponencia.Where(e => e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                                                     .Include(e => e.EstadoFlujo)
                                                                     .Include(e => e.congreso)
                                                                     .Include(e => e.Ambito)
                                                                     .Include(e => e.NivelPublicacion)
                                                                     .Include(e => e.EstadoPonencia)
                                                                     .Include(e => e.Pais)
                                                                     select a);

                                                            ss.recordsTotal = v.Count();



                                                            if (!String.IsNullOrEmpty(ss.Titulo)) //busqueda por titulo
                                                            {
                                                                var listaDA = await GetDALikeTituloPonenciaNuevo(ss.Titulo);

                                                                v = v.Where(e => listaDA.Contains(e.PonenciaId));
                                                            }


                                                            //Lugar del congreso
                                                            if (!string.IsNullOrEmpty(ss.Tipo))
                                                            {
                                                                v = v.Where(e =>
                                                                            e.PaisID.ToString().Equals(ss.Tipo) &&
                                                                            (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                                                            );
                                                            }


                                                            if (!String.IsNullOrEmpty(ss.Autor)) //busqueda por titulo
                                                            {
                                                                var listaDA = await GetPKAutorExternoByCollateLatin1(ss.Autor);

                                                                v = v.Where(e => listaDA.Contains(e.PonenciaId) && (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13));
                                                            }



                                                            if (!string.IsNullOrEmpty(ss.Becario)) //Tomado como autor interno
                                                            {
                                                                var entiti = await _ctx.AutorIIEPonencia
                                                                             .Where(e => e.ClavePersona.ToString().Contains(ss.Becario) &&
                                                                                    (e.Ponencia.EstadoFlujoId == 3 || e.Ponencia.EstadoFlujoId == 11 || e.Ponencia.EstadoFlujoId == 12 || e.Ponencia.EstadoFlujoId == 13))
                                                                             .Include(e => e.Ponencia)
                                                                             .AsNoTracking().ToListAsync();

                                                                if (entiti.Count == 0)
                                                                {
                                                                    var reg = new AutorIIEPonencia();
                                                                    reg.PonenciaId = -1;
                                                                    v = v.Where(e => e.PonenciaId == reg.PonenciaId &&
                                                                                (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                                                                );
                                                                }
                                                                else
                                                                {
                                                                    HashSet <String> claves = null;
                                                                    var registros           = entiti.Select(x => x.PonenciaId.ToString()).ToList();
                                                                    claves = new HashSet <String>(registros);
                                                                    v      = v.Where(e => claves.Contains(e.PonenciaId.ToString()) &&
                                                                                     (e.EstadoFlujoId == 3 || e.EstadoFlujoId == 11 || e.EstadoFlujoId == 12 || e.EstadoFlujoId == 13)
                                                                                     );
                                                                }
                                                            }


                                                            //caja
                                                            if (!string.IsNullOrEmpty(ss.searchValue))
                                                            {
                                                                //var pal = ss.searchValue.Split(' ');
                                                                //foreach (var pa in pal)
                                                                //{

                                                                var listaDA = await GetDALikeTituloPonenciaNuevo(ss.searchValue);

                                                                var listaPais = await GetDALikePaises(ss.searchValue);

                                                                var listaCongresos = await GetDALikeCongresos(ss.searchValue);

                                                                var p = ss.searchValue.ToLower();
                                                                v = v.Where(e =>
                                                                            listaDA.Contains(e.PonenciaId) ||
                                                                            e.FechaInicio.ToString().Contains(p) ||
                                                                            listaCongresos.Contains(e.CongresoId) ||
                                                                            listaPais.Contains(e.PaisID)


                                                                            );
                                                                //}
                                                            }


                                                            if (!string.IsNullOrEmpty(ss.NuevaFechaInicio) || !string.IsNullOrEmpty(ss.NuevaFechaTermino))
                                                            {
                                                                //var listaDA = await GetPorfecha(ss.NuevaFechaInicio, ss.NuevaFechaTermino);
                                                                //v = v.Where(e => listaDA.Contains(e.PonenciaId));
                                                                var fechaInicio = Convert.ToDateTime(ss.NuevaFechaInicio);
                                                                var fechaFin    = Convert.ToDateTime(ss.NuevaFechaTermino);
                                                                v = v.Where(e => (DbFunctions.TruncateTime(e.FechaInicio) >= DbFunctions.TruncateTime(fechaInicio) &&
                                                                                  DbFunctions.TruncateTime(e.FechaInicio) <= DbFunctions.TruncateTime(fechaFin)));
                                                            }


                                                            //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();
                                                            entities           = await v.Skip(ss.skip).Take(ss.pageSize).AsNoTracking().ToListAsync();

                                                            return(entities.OrderByDescending(e => e.FechaInicio));
                                                        }
                                                        catch (Exception e)
                                                        {
                                                            throw new Exception(e.Message, e);
                                                        }
                                                    }