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