public async Task <IEnumerable <IdeaInnovadora> > GetByClave(String ClavePersona) { try { var entities = await dbGI.DbSetIdeaInnovadora.AsNoTracking() .Include(e => e.EstadoFlujo) .Include(e => e.Adjunto) .Where(x => x.ClavePersona == ClavePersona || dbGI.DbSetAutoresIdea.Where(ai => ai.IdeaInnovadoraId == x.IdeaInnovadoraId).Select(ai => ai.ClavePersona).ToList().Contains(ClavePersona) ).ToListAsync(); foreach (var item in entities) { AutoresIdea proponente = await autores.getProponentePrincipalById(item.IdeaInnovadoraId); if (proponente != null) { Personas autor = await _personaRepo.GetByClave(proponente.ClavePersona); item.proponenteNombre = autor.NombreCompleto; item.ClaveProponentePrincipal = autor.ClavePersona; } } return(entities); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task Create(AutoresIdea model) { try { dbGI.DbSetAutoresIdea.Add(model); await dbGI.SaveChangesAsync(); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task Update(AutoresIdea model) { try { var _model = await dbGI.DbSetAutoresIdea.FirstOrDefaultAsync(e => e.Id == model.Id); if (_model != null) { dbGI.Entry(_model).CurrentValues.SetValues(model); await dbGI.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IEnumerable <IdeaInnovadora> > getAllAceptadas2() { try { var entities = await dbGI.DbSetIdeaInnovadora .Where(e => e.EstadoFlujoId == 10) .Include(e => e.EstadoFlujo) .AsNoTracking().ToListAsync(); foreach (var item in entities) { AutoresIdea proponente = await autores.getProponentePrincipalById(item.IdeaInnovadoraId); if (proponente != null) { Personas autor = await _personaRepo.GetByClave(proponente.ClavePersona); item.proponenteNombre = autor.NombreCompleto; item.ClaveProponentePrincipal = proponente.ClavePersona; } if (item.TipoAcceso == 1) { item.AccesoPublico = true; } else { item.AccesoPublico = false; } } return(entities); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IEnumerable <Object> > GetConsultaIdeas(IdeaInnovadora parametros) { try { var entities = dbGI.DbSetIdeaInnovadora .Include(e => e.EstadoFlujo) .AsNoTracking(); if (entities != null) { /***Seccion [Buscar idea innovadora]**/ if (!String.IsNullOrEmpty(parametros.busqueda))//busqueda en general (seccion buscar 'idea innovadora') { entities = entities.Where(e => e.EstadoFlujoId == 10); } /***Seccion [Mis ideas innovadoras]**/ if (!String.IsNullOrEmpty(parametros.ClavePersona))//busqueda por los registros de la persona { var fksautores = await dbGI.DbSetAutoresIdea.Where(e => e.ClavePersona == parametros.ClavePersona).AsNoTracking().Select(x => x.IdeaInnovadoraId).ToListAsync(); entities = entities.Where(e => fksautores.Contains(e.IdeaInnovadoraId) || e.ClavePersona == parametros.ClavePersona); } /***Criterios de busqueda en general de ambos formularios**/ if (!String.IsNullOrEmpty(parametros.NombreIdea))//busqueda por el nombre de la idea innovadora { var fksideas = await GetIdeasLikeNombreLatin1(parametros.NombreIdea); entities = entities.Where(e => fksideas.Contains(e.IdeaInnovadoraId)); } if (!String.IsNullOrEmpty(parametros.busquedaFecha)) //busqueda por fechas { entities = entities.Where(e => (DbFunctions.TruncateTime(e.FechaRegistro) >= DbFunctions.TruncateTime(parametros.fechaInicioComparacion) && DbFunctions.TruncateTime(e.FechaRegistro) <= DbFunctions.TruncateTime(parametros.fechaFinalComparacion))); } if (!String.IsNullOrEmpty(parametros.proponenteNombre)) //busqueda por proponentes { PersonasRepository p = new PersonasRepository(); var claves = await p.GetAllClavesByLikeNombreLatin1(parametros.proponenteNombre); var fksproponentes = await dbGI.DbSetAutoresIdea.Where(e => claves.Contains(e.ClavePersona) && e.ContribucionProponenteId == 0).AsNoTracking().Select(x => x.IdeaInnovadoraId).ToListAsync(); entities = entities.Where(x => fksproponentes.Contains(x.IdeaInnovadoraId)); } if (!String.IsNullOrEmpty(parametros.PalabrasClave))//busqueda por las palabras clave de las ideas innovadoras { var fkspalabras = await GetIdeasByPalabrasClaveLikeNombreLatin1(parametros.PalabrasClave); entities = entities.Where(e => fkspalabras.Contains(e.IdeaInnovadoraId)); } var datos = entities.ToList(); foreach (var item in datos) { AutoresIdea proponente = await autores.getProponentePrincipalById(item.IdeaInnovadoraId); if (proponente != null) { Personas autor = await _personaRepo.GetByClave(proponente.ClavePersona); item.proponenteNombre = autor.NombreCompleto; item.ClaveProponentePrincipal = proponente.ClavePersona; } if (item.TipoAcceso == 1) { item.AccesoPublico = true; } else { item.AccesoPublico = false; } } return(datos); } return(entities); } catch (Exception e) { throw new Exception(e.Message, e); } }