//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 <List <ProyectosFF> > GetConvocatoria(int ConvocatoriaId, string ClaveUnidad, List <ProyectosFF> ProyectosFF) { // List<ProyectosFF> ProyectosFFSelect = new List<ProyectosFF>(); var ProyectoPC = new List <ProyectoPorConvocatoria>(); ProyectoPC = await(from ppc in _db.ProyectoPorConvocatoria where ppc.ConvocatoriaId == ConvocatoriaId select ppc) .Include(e => e.Proyecto) .Include(e => e.Convocatoria) .AsNoTracking() .ToListAsync(); //unidades organizacionales de los proyectos en la convocatoria List <String> uos1 = new List <string>(ProyectoPC.Select(x => x.Proyecto.UnidadOrganizacionalId.Trim())); //Unidades organizacionales de acuerdo a la UO seleccionada en el formulario UORepository uo = new UORepository(_dbGen); var unidades = await uo.GetByIdWithChildren(ClaveUnidad); var unidSel = await uo.UnidadActualWithoutStatus(ClaveUnidad); List <String> uos2 = null; if (ClaveUnidad == "") { uos2 = uos1; } else { uos2 = new List <string>(unidades.Children.Select(x => x.ClaveUnidad)); uos2.Add(unidSel.ClaveUnidad.ToString()); } var ProyectoPCSelect = new List <ProyectoPorConvocatoria>(); foreach (ProyectoPorConvocatoria ppc in ProyectoPC) { var unidadId = ppc.Proyecto.UnidadOrganizacionalId.Trim(); var vigencia = "Inactiva"; if (uos2.Contains(unidadId)) { ProyectosFF obj = new ProyectosFF(); obj.NumProy = ppc.ProyectoId; obj.NombreProy = ppc.Proyecto.Nombre; obj.FInicioProy = ppc.Proyecto.FechaInicio; obj.FTerminoProy = ppc.Proyecto.FechaFin; obj.MontoProy = ppc.Proyecto.Costo; var unid = await uo.UnidadActualWithoutStatus(unidadId); obj.Claveunidad = unidadId; obj.UnidadProy = unid.NombreUnidad; obj.FondoProgramaId = ppc.Convocatoria.FondoProgramaId; var fond = await(from nfond in _db.FondoPrograma where nfond.FondoProgramaId == ppc.Convocatoria.FondoProgramaId select nfond).FirstOrDefaultAsync(); obj.NombreF = fond.NombreFP; obj.FuenteFinanciamientoId = fond.FuenteFinanciamientoId; var fuent = await(from nfue in _db.FuenteFinanciamiento where nfue.FuenteFinanciamientoId == fond.FuenteFinanciamientoId select nfue).FirstOrDefaultAsync(); obj.NombreFF = fuent.NombreFF; //obj.TipoFuenteFinanciamientoId = fuent.TipoFuenteFinanciamientoId; obj.NombreTipoFF = await(from ntfue in _db.TipoFuenteFinanciamiento //where ntfue.TipoFuenteFinanciamientoId == fuent.TipoFuenteFinanciamientoId select ntfue.Nombre).FirstOrDefaultAsync(); obj.ConvocatoriaId = ppc.ConvocatoriaId; obj.NombreC = ppc.Convocatoria.NombreConvocatoria; if (ppc.Convocatoria.FechaTermino > DateTime.Now) { vigencia = "Activa"; } obj.VigenciaC = vigencia; ProyectosFF.Add(obj); } } return(ProyectosFF); }
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); } }