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));
        }