예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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
        }