public async Task <Object> GetAll() { try { ExpertosRepository _expertoRepo = new ExpertosRepository(); List <object> informacion = new List <object>(); var entities = await _db.DbSetComunidades .Include(e => e.CategoriaCP) .Include(e => e.Adjunto) .AsNoTracking().ToListAsync(); foreach (var item in entities) { Comunidad com = new Comunidad(); if (item.Adjunto == null) { com.Adjunto64 = null; } else { String file = string.Empty; var archivo = item.Adjunto.RutaCompleta; try { Byte[] bytes = File.ReadAllBytes(archivo); file = Convert.ToBase64String(bytes); com.Adjunto64 = file; } catch (Exception e) { com.Adjunto64 = null; } } com.Descripcion = item.Descripcion; com.Mision = item.Mision; com.Estado = item.Estado; com.ComunidadId = item.ComunidadId; com.TipoAcceso = item.TipoAcceso; com.FechaRegistro = item.FechaRegistro; int numMiembros = _db.DbSetMiembros.Count(x => x.idCP == item.ComunidadId && x.estado == true); int expertos = _cr.Expertos.Count(x => x.ComunidadId == item.ComunidadId); int numDocs = _db.DbSetDocumentos.Count(x => x.idComunidadCP == item.ComunidadId); int numSitios = _db.DbSetSitioInteres.Count(x => x.idCP == item.ComunidadId); var resultado = new { comunidad = com, noMiembros = numMiembros, noExpertos = expertos, noDocumentos = numDocs, noSitios = numSitios }; informacion.Add(resultado); } return(informacion); } catch (Exception e) { throw new Exception(e.Message, e); } }
public ExpertosController() { _expertoRepo = new ExpertosRepository(); }
public async Task <Object> GetMisComunidades(string clave) { try { //int numDocumentosCargados = _db.DbSetDocumentos.Count(); //if (numDocumentosCargados == 0) //{ // CargaDatosSIGCOE2 documentos = new CargaDatosSIGCOE2(); // await documentos.cargaDocumentos(); //} ExpertosRepository _expertoRepo = new ExpertosRepository(); List <int> listComunidad = await _db.DbSetMiembros.Where(e => e.idPersonas == clave).Select(e => e.idCP).ToListAsync(); var entities = await _db.DbSetComunidades.Where(e => listComunidad.Contains(e.ComunidadId) && e.Estado == true).Include(e => e.Adjunto).AsNoTracking().ToListAsync(); List <object> lista = new List <object>(); foreach (var item in entities) { Comunidad com = new Comunidad(); if (item.Adjunto == null) { com.Adjunto64 = null; } else { String file = string.Empty; var archivo = item.Adjunto.RutaCompleta; try { Byte[] bytes = File.ReadAllBytes(archivo); file = Convert.ToBase64String(bytes); com.Adjunto64 = file; } catch (Exception e) { com.Adjunto64 = null; } } com.Descripcion = item.Descripcion; com.Mision = item.Mision; com.Estado = item.Estado; com.ComunidadId = item.ComunidadId; com.TipoAcceso = item.TipoAcceso; com.FechaRegistro = item.FechaRegistro; int numMiembros = _db.DbSetMiembros.Count(x => x.idCP == item.ComunidadId && x.estado == true); //var expertos = await _expertoRepo.expertosEnComunidad(item.ComunidadId); int expertos = _cr.Expertos.Count(x => x.ComunidadId == item.ComunidadId); int numDocs = _db.DbSetDocumentos.Count(x => x.idComunidadCP == item.ComunidadId); int numSitios = _db.DbSetSitioInteres.Count(x => x.idCP == item.ComunidadId); var resultado = new { comunidad = com, noMiembros = numMiembros, noExpertos = expertos, noDocumentos = numDocs, noSitios = numSitios }; lista.Add(resultado); } return(lista); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <Object> GetInformes2() { ExpertosRepository _expertoRepo = new ExpertosRepository(); List <object> informacion = new List <object>(); List <object> listaMiembros; try { var entities = await _db.DbSetComunidades.Where(e => e.Estado == true).Include(e => e.CategoriaCP).AsNoTracking().ToListAsync(); var resultado = new Object(); string soloNombres = ""; foreach (var item in entities) { listaMiembros = new List <object>(); //var expertos = await _expertoRepo.expertosEnComunidad(item.ComunidadId); int expertos = _cr.Expertos.Count(x => x.ComunidadId == item.ComunidadId); int numDocs = _db.DbSetDocumentos.Count(x => x.idComunidadCP == item.ComunidadId); int numSitios = _db.DbSetSitioInteres.Count(x => x.idCP == item.ComunidadId); int preguntas = _db.DbSetPreguntas.Count(x => x.idCP == item.ComunidadId); int posts = _db.DbSetPost.Count(x => x.idComunidad == item.ComunidadId); var miembros = await _db.DbSetMiembros.Where(m => m.idCP == item.ComunidadId && m.estado == true).AsNoTracking().ToListAsync(); var lider = miembros.Where(t => t.rolId == 3).DefaultIfEmpty(); var secretario = miembros.Where(t => t.rolId == 4).DefaultIfEmpty(); var solomiembros = miembros.Where(t => t.rolId == 2 && t.estado == true).ToList(); foreach (var m in solomiembros) { listaMiembros.Add(m.idPersonas + " " + m.nombrePersona); soloNombres = soloNombres + m.nombrePersona + ","; } var resultados = await _db.DbSetAvance.Include("Resultado.Metas").Include(e => e.AvanceMiembros).Where(e => e.Resultado.Metas.idCP == item.ComunidadId).AsNoTracking().ToListAsync(); AvanceMiembrosRepository avance = new AvanceMiembrosRepository(); Object[] lista = new Object[resultados.Count]; int contadorCompromisos = 0; int contadorTerminados = 0; foreach (var obj in resultados) { lista[resultados.IndexOf(obj)] = new { obj.Descripcion, resultado = new { obj.Resultado.ResultadoEsperado, obj.Resultado.FechaEsperada }, obj.Comentario, obj.Resultado.Metas.Meta }; if (obj.Descripcion == "100") { contadorTerminados = contadorTerminados + 1; } contadorCompromisos++; } resultado = new { comunidad = item.Descripcion, mision = item.Mision, fecha = item.FechaRegistro, categoria = item.CategoriaCP.Nombre, noMiembros = miembros.Count, noExpertos = expertos, noDocumentos = numDocs, noSitios = numSitios, noPreguntas = preguntas, noPosts = posts, lider = lider, secretario = secretario, soloMiembros = listaMiembros, soloNombres = soloNombres, idCategoria = item.idCategoria, avance = lista, noCompromisos = contadorCompromisos, comTerminados = contadorTerminados }; informacion.Add(resultado); listaMiembros = null; soloNombres = ""; } return(informacion); } catch (Exception e) { throw new Exception(e.Message, e); } }