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);
            }
        }
Пример #2
0
 public async Task Create(AutoresIdea model)
 {
     try
     {
         dbGI.DbSetAutoresIdea.Add(model);
         await dbGI.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
Пример #3
0
        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);
            }
        }