public async Task CreateConAutores(IdeaInnovadora model, List <AutoresIdea> listaAutores) { try { dbGI.DbSetIdeaInnovadora.Add(model); await dbGI.SaveChangesAsync(); try { if (listaAutores != null && listaAutores.Count > 0) { await autores.CreateAllSetIdeaInnovadoraId(listaAutores, model.IdeaInnovadoraId); } } catch (Exception err) { dbGI = new GI_Context(); var _model = await dbGI.DbSetIdeaInnovadora.FirstOrDefaultAsync(e => e.IdeaInnovadoraId == model.IdeaInnovadoraId); dbGI.DbSetIdeaInnovadora.Remove(_model); await dbGI.SaveChangesAsync(); throw err; } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task UpdateEstado(IdeaInnovadora model) { try { //if (model.EstadoFlujoId == 10) //{ // model.FechaValidacion = DateTime.Now; //} var _model = await dbGI.DbSetIdeaInnovadora.FirstOrDefaultAsync(e => e.IdeaInnovadoraId == model.IdeaInnovadoraId); if (_model != null) { _model.EstadoFlujoId = model.EstadoFlujoId; _model.TipoAcceso = model.TipoAcceso; if (model.EstadoFlujoId == 10) { _model.FechaValidacion = DateTime.Now; } await dbGI.SaveChangesAsync(); if (model.TipoAcceso == 1 && model.EstadoFlujoId == 10) { NuevoOCRepository nuevo = new NuevoOCRepository(); await nuevo.Create(new NuevoOC("GI", "II", _model.NombreIdea, "indexGI.html#/buscarIdeaInnovadoraDetalles/" + _model.IdeaInnovadoraId, _model.IdeaInnovadoraId.ToString() )); } } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IHttpActionResult> GetConsultaIdeas(IdeaInnovadora p) { try { var entities = await _repo.GetConsultaIdeas(p); return(Ok(entities)); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <IHttpActionResult> UpdateTipoAcceso(IdeaInnovadora model) { try { await _repo.UpdateTipoAcceso(model); return(Ok("Tipo acceso actualizado exitosamente!")); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task UpdateTipoAcceso(IdeaInnovadora model) { try { var _model = await dbGI.DbSetIdeaInnovadora.FirstOrDefaultAsync(e => e.IdeaInnovadoraId == model.IdeaInnovadoraId); if (_model != null) { _model.TipoAcceso = model.TipoAcceso; _model.TipoAccesoGI = null; await dbGI.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task Update(IdeaInnovadora model, List <AutoresIdea> listaAutores) { //throw new Exception("foo"); try { var _model = await dbGI.DbSetIdeaInnovadora.FirstOrDefaultAsync(e => e.IdeaInnovadoraId == model.IdeaInnovadoraId); if (_model.AdjuntoId != null) { var id = _model.AdjuntoId; _model.AdjuntoId = null; await dbGI.SaveChangesAsync(); await new AdjuntoRepository().Delete(id); } if (model.Adjunto != null) { Adjunto key = await _adjuntoRepo.CreateAd(model.Adjunto); model.AdjuntoId = key.AdjuntoId; model.Adjunto.AdjuntoId = key.AdjuntoId; } else { model.AdjuntoId = null; } if (model.EstadoFlujoId == 14) { model.FechaRegistro = DateTime.Now; } ; if (_model != null) { dbGI.Entry(_model).CurrentValues.SetValues(model); await dbGI.SaveChangesAsync(); } try { if (listaAutores.Count > 0) { foreach (var autor in listaAutores) { if (autor.Persona.Equals("eliminar")) { var _proponenteExist = await dbGI.DbSetAutoresIdea.FirstOrDefaultAsync(e => e.Id == autor.Id); if (_proponenteExist != null) { dbGI.DbSetAutoresIdea.Remove(_proponenteExist); await dbGI.SaveChangesAsync(); } } if (autor.IdeaInnovadoraId == 0) { autor.ContribucionProponente = null; autor.IdeaInnovadoraId = model.IdeaInnovadoraId; var result = dbGI.DbSetAutoresIdea.Add(autor); await dbGI.SaveChangesAsync(); } } } } catch (Exception e) { throw new Exception(e.Message, e); } } 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); } }