public ActionResult GetChartData(int?idCentro, string tag1, string tag2, string estados, string municipios, bool quickCountOnly = false) { var db = new edayRoomEntities(); var tag1Filter = string.IsNullOrWhiteSpace(tag1) ? null : tag1; var tag2Filter = string.IsNullOrWhiteSpace(tag2) ? null : tag2; var estadosFilter = string.IsNullOrWhiteSpace(estados) ? null : estados; var municipiosFilter = string.IsNullOrWhiteSpace(municipios) ? null : municipios; var data = db.GetTotalizacion(idCentro, null, tag1Filter, tag2Filter, estadosFilter, municipiosFilter, quickCountOnly, null).ToList(); var totalVotos = (int)data.Sum(d => d.votos ?? 1); var totalProyecciones = (int)data.Sum(d => d.proyeccion ?? 1); var candidatos = data.Select(d => new CandidatoCountChart { Nombre = d.nombre, Votos = d.votos ?? 1, Proyeccion = d.proyeccion ?? 1, Color = d.color, PorcentajeVotos = (float)Math.Round((d.votos ?? 1.0) * 100 / (totalVotos == 0?1:totalVotos), 2), PorcentajeProyeccion = (float)Math.Round((d.proyeccion ?? 1.0) * 100 / (totalProyecciones == 0 ? 1 : totalProyecciones), 2) }).ToList(); return(Json(candidatos, JsonRequestBehavior.AllowGet)); }
public ActionResult GetChartData(string tag1, string tag2, string estados, string municipios) { var db = new edayRoomEntities(); var tag1Filter = string.IsNullOrWhiteSpace(tag1) ? null : tag1; var tag2Filter = string.IsNullOrWhiteSpace(tag2) ? null : tag2; var estadosFilter = string.IsNullOrWhiteSpace(estados) ? null : estados; var municipiosFilter = string.IsNullOrWhiteSpace(municipios) ? null : municipios; var data = db.GetTotalizacion(null, null, tag1Filter, tag2Filter, estadosFilter, municipiosFilter, true, null).ToList(); var totalVotos = (int)data.Sum(d => d.votos ?? 1); var totalProyecciones = (int)data.Sum(d => d.proyeccion ?? 1); var candidatos = data.Select(d => new CandidatoCountChart { Nombre = d.nombre, Votos = d.votos ?? 1, Proyeccion = d.proyeccion ?? 1, Color = d.color, PorcentajeVotos = (float)Math.Round((d.votos ?? 1.0) * 100 / (totalVotos == 0 ? 1 : totalVotos), 2), PorcentajeProyeccion = (float)Math.Round((d.proyeccion ?? 1.0) * 100 / (totalProyecciones == 0 ? 1 : totalProyecciones), 2) }).ToList(); return(Json(candidatos, JsonRequestBehavior.AllowGet)); //var db = new edayRoomEntities(); //IQueryable<Totalizacion> tots = db.Totalizacions.Where(t => t.QuickCountTimelines.Any()); //IOrderedQueryable<RelacionCandidatoPartidoCoalicion> rel = // db.RelacionCandidatoPartidoCoalicions.OrderBy(r => r.Candidato.nombre + r.Partido.nombre); //var candidatos = new List<CandidatoCountChart>(); //foreach (RelacionCandidatoPartidoCoalicion r in rel) //{ // IQueryable<Totalizacion> candidatoTots = tots.Where(t => t.id_candidato == r.id); // IQueryable<IGrouping<int, Totalizacion>> groupbyMesa = candidatoTots.GroupBy(t => t.id_mesa); // int votos = groupbyMesa.Sum(t => t.Max(m => m.valor)); // var candidato = new CandidatoCountChart // { // Nombre = r.Candidato.nombre, // Votos = votos // }; // candidatos.Add(candidato); //} //return Json(candidatos, JsonRequestBehavior.AllowGet); //CandidatoCountChart }
public ActionResult GetQuickCountPorMuestras() { var db = new edayRoomEntities(); var results = new List <KeyValuePair <string, List <GetTotalizacion_Result1> > >(); var avances = new List <KeyValuePair <string, GetMetricasQuickCount_Result> >(); foreach (var m in db.MuestrasQuickCounts) { string val = m.value; var avance = db.GetMetricasQuickCount(val).First(); avances.Add(new KeyValuePair <string, GetMetricasQuickCount_Result>(val, avance)); var data = db.GetTotalizacion(null, null, null, null, null, null, true, val).ToList(); results.Add(new KeyValuePair <string, List <GetTotalizacion_Result1> >(val, data)); } return(Json(new{ results, avances }, JsonRequestBehavior.AllowGet)); }