Пример #1
0
        public ActionResult GraficoHabEmp(string tipoHab)
        {
            //Se arma y se ejecuta el query
            string consulHab     = "Consultar_Num_Habilidades_Empleados '" + tipoHab + "'";
            var    tempNumHabEmp = (db.Database.SqlQuery <NumHab>(consulHab)).ToList();

            //Se arman los ejes del gráfico
            string[] habilidades = tempNumHabEmp.Select(l => l.Habilidad.ToString()).ToArray();
            int[]    totales     = tempNumHabEmp.Select(l => l.Total).ToArray();
            //Se obtiene el porcentaje para poder mostrarlo
            int totalObtenido = 0;

            foreach (int i in totales)
            {
                totalObtenido += i;
            }
            for (int i = 0; i < habilidades.Length; i++)
            {
                habilidades[i] = habilidades[i] + " (" + ((double)totales[i] / (double)totalObtenido * 100.00).ToString("#.##") + "%)";
            }
            //Se construye el gráfico con los resultados y porcentajes obtenidos
            var chart = new System.Web.Helpers.Chart(width: 513, height: 400)
                        .AddSeries(name: "HabilidaddesEmp " + tipoHab, chartType: "Pie",
                                   xValue: habilidades,
                                   yValues: totales)
                        .AddLegend()
                        .AddTitle("Habilidades de los Empleados")
                        .SetYAxis("Cantidad de Habilidades")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #2
0
        public ActionResult GraficoDuracionProy(string proy)
        {
            ViewBag.idproy = proy;

            var consultaGrafico = (from proyecto in db.PROYECTO
                                   where proyecto.idPK == proy
                                   select new
            {
                durEst = proyecto.duracionEstimada,
                durReal = proyecto.duracionReal
            });
            int duracionEstimada = 0;
            int duracionReal     = 0;

            foreach (var item in consultaGrafico.ToList())
            {
                duracionEstimada = item.durEst.Value;
                duracionReal     = item.durReal.Value;
            }

            int[] horas = new int[2];
            horas[0] = duracionEstimada;
            horas[1] = duracionReal;

            var chart = new System.Web.Helpers.Chart(width: 700, height: 400, themePath: "~/Img/estiloDurProy.xml")
                        .AddSeries(name: "Duraciones",
                                   xValue: new[] { "Duracion Estimada", "Duracion Real" },
                                   yValues: horas)
                        .AddTitle("Análisis de Resultados", "TituloDurProy")
                        .SetYAxis("Cantidad de Horas")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
        public ActionResult _graficoContratos()
        {
            model = (from a in db.Arm_LiquidadosEAtivos_Contrato
                     where a.origem.Equals("B")
                     group a by new { a.status } into g
                     select new
            {
                statusGoup = g.Key,
                totalGoup = g.Count(c => c.status.HasValue)
            }).AsEnumerable().Select(x => new TesteViewModel
            {
                status = x.statusGoup.status,
                total  = x.totalGoup
            });

            if (model.Count() == 0 || model == null)
            {
                return(View());
            }

            if (model == null || model.Any() == false)
            {
                return(View("_graficoContratos", model));
            }

            var myChart = new System.Web.Helpers.Chart(width: 230, height: 118, theme: Vanilla3D3)
                          //.AddTitle("CONTRATOS")
                          //.AddLegend("LEGENDA")
                          //.Save(@"H:\Downloads\grafico.jpg")
                          //.AddSeries(chartArea:"teste")
                          .AddSeries("Default", chartType: "Pie", xValue: model.ToList(), xField: "status", yValues: model.ToList(), yFields: "total")
                          .Write();

            return(null);
        }
Пример #4
0
        public ActionResult GraficoHorasPorReq(string proy, string tester)
        {
            string queryHorasPorReq = "Exec Consulta_Horas_Por_Req" + "'" + proy + "','" + tester + "'";
            //Se hace el query a la base de datos
            var tempHorasPorReq = (db.Database.SqlQuery <HorasReq>(queryHorasPorReq)).ToList();

            string[] reqs   = tempHorasPorReq.Select(l => l.nombreReq.ToString()).ToArray();
            string[] horasR = tempHorasPorReq.Select(l => l.horasEstimadas.ToString()).ToArray();
            string[] horasE = tempHorasPorReq.Select(l => l.horasReales.ToString()).ToArray();

            var chart = new System.Web.Helpers.Chart(width: 900, height: 450, themePath: "~/Img/estiloHorPorReq.xml")
                        .AddTitle("Análisis de Resultados", "TituloHorPorReq")
                        .AddSeries(name: "Horas Estimadas",
                                   chartType: "column",
                                   xValue: reqs,
                                   yValues: horasE)
                        .AddSeries(name: "Horas Reales",
                                   chartType: "column",
                                   xValue: reqs,
                                   yValues: horasR)
                        .AddLegend()
                        .SetYAxis("Cantidad de Horas")
                        .SetXAxis("Requerimientos")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #5
0
        public ActionResult GraficoTesterReq(string testerId)
        {
            ViewBag.idEmp = testerId;
            string procedure  = "Exec Consulta_Tester_Req_Dificultad '" + testerId + "'";
            var    testerData = (db.Database.SqlQuery <TesterParticipacion>(procedure)).ToList();

            int[] baja       = testerData.Select(l => l.baja).ToArray();
            int[] intermedia = testerData.Select(l => l.intermedia).ToArray();
            int[] alta       = testerData.Select(l => l.alta).ToArray();

            int[] porcentaje = new int[3];
            int   total      = baja[0] + intermedia[0] + alta[0];

            porcentaje[0] = (baja[0] * 100) / total;
            porcentaje[1] = (intermedia[0] * 100) / total;
            porcentaje[2] = (alta[0] * 100) / total;

            string[] nombres = new string[3];
            nombres[0] = "Baja";
            nombres[1] = "Intermedia";
            nombres[2] = "Alta";

            var chart = new System.Web.Helpers.Chart(width: 513, height: 400)
                        .AddSeries(name: "Requerimientos realizados", chartType: "Pie",
                                   xValue: nombres,
                                   yValues: porcentaje)
                        .AddLegend()
                        .AddTitle("Requerimientos realizados")

                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #6
0
        public ActionResult GraficoTesterReqGlobal(string testerId)
        {
            ViewBag.idEmp = testerId;
            string procedure  = "Exec Consulta_Tester_Req_Percentage_Total '" + testerId + "'";
            var    testerData = (db.Database.SqlQuery <TesterParticipacionGlobal>(procedure)).ToList();

            int[]    total       = testerData.Select(l => l.total).ToArray();
            int[]    partipacion = testerData.Select(l => l.participacion).ToArray();
            string[] nombre      = testerData.Select(l => l.nombre.ToString()).ToArray();

            int[] porcentaje = new int[2];
            porcentaje[0] = (partipacion[0] * 100) / total[0];
            porcentaje[1] = 100 - porcentaje[0];

            string[] nombres = new string[2];
            nombres[0] = nombre[0];
            nombres[1] = "Total";

            var chart = new System.Web.Helpers.Chart(width: 513, height: 400)
                        .AddSeries(name: "Requerimientos realizados", chartType: "Pie",
                                   xValue: nombres,
                                   yValues: porcentaje)
                        .AddLegend()
                        .AddTitle("Requerimientos realizados")

                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #7
0
        // GET: Admin/CreateChart
        public ActionResult CreateChart()
        {
            var chart = new System.Web.Helpers.Chart(width: 700, height: 300)
                        .AddTitle("График посещений")
                        .AddSeries(
                name: "Моя программа",
                legend: "Моя программа",
                chartType: "Line",
                xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
                yValues: new[] { "2", "6", "4", "5", "3" })
                        .Write();

            return(null);
        }
        public static Chart CreateChart(List <ActivityPerMinute> data)
        {
            var chart = new Chart(width: 1920, height: 1080)
                        .AddTitle("Activity")
                        .AddSeries(
                name: "Accelerometer",
                chartType: "Column",
                xValue: data.Select(m => m.DateTime).ToList(),
                yValues: data.Select(m => m.Activity).ToList()
                )
                        .Write();

            return(chart);
        }
        public System.Web.Helpers.Chart GetChart()
        {
            var isChartOk = false;
            var sbError   = new System.Text.StringBuilder("");


            var chart = new System.Web.Helpers.Chart(width: 600, height: 400, theme: System.Web.Helpers.ChartTheme.Vanilla)
                        .AddTitle(ChartTitle);

            xAndyValues = xAndyValues ?? new List <AspChartSeries>();

            foreach (var series in xAndyValues)
            {
                if (series == null)
                {
                    continue;
                }
                var xValues = series.SeriesValue
                              .Select(kvp => kvp.Key.ToString())
                              .ToArray();
                var yValues = series.SeriesValue
                              .Select(kvp => kvp.Value)
                              .ToArray();
                if ((xValues == null) || (yValues == null))
                {
                    continue;
                }
                else
                {
                    isChartOk = true;
                }
                chart.AddSeries(
                    name: series.SeriesTitle,
                    chartType: aspChartType.ToString(),
                    xValue: xValues,
                    yValues: yValues
                    );
            }

            if (isChartOk)
            {
                if (AddLegend)
                {
                    chart.AddLegend();
                }
            }

            return(chart);
        }
Пример #10
0
        public ActionResult GetCashItemChartImage()
        {
            // DB 접속
            using (var db = new CloudBreadDBAdminEntities())
            {
                var data = db.StatsData.SqlQuery("select top 30 * from CloudBread.StatsData where CategoryName like 'CASHITEM' order by CreatedAt asc");

                var key = new System.Web.Helpers.Chart(width: 300, height: 300)
                    .AddTitle("Cash아이템 매출")
                    .AddSeries(
                    chartType: "Line",
                    name: "일",
                    xValue: data, xField: "Fields",
                    yValues: data, yFields: "CountNum");

                return File(key.ToWebImage().GetBytes(), "image/jpeg");
            }
        }
Пример #11
0
        public ActionResult GetDDAUChartImage()
        {
            // DB 접속
            using (var db = new CloudBreadDBAdminEntities())
            {
                var data = db.StatsData.SqlQuery("select top 30 * from StatsData where CategoryName like 'DDAU' order by CreatedAt asc");

                var key = new System.Web.Helpers.Chart(width: 300, height: 300)
                          .AddTitle("DAU-일")
                          .AddSeries(
                    chartType: "Line",
                    name: "일",
                    xValue: data, xField: "Fields",
                    yValues: data, yFields: "CountNum");

                return(File(key.ToWebImage().GetBytes(), "image/jpeg"));
            }
        }
Пример #12
0
        public ActionResult ResChart()
        {
            var ResList = new List <StatQuestItem>();

            foreach (var currResult in _context.Results)
            {
                ResultDataItem[] currentResult = JsonConvert.DeserializeObject <ResultDataItem[]>(currResult.ResStr);
                foreach (var itm in currentResult)
                {
                    if (ResList.Count(x => x.Id == itm.qId) == 0)
                    {
                        ResList.Add(new StatQuestItem {
                            Id = itm.qId, FalseCount = 0, TruthCount = 0
                        });
                    }
                    if (itm.rt)
                    {
                        ResList.FirstOrDefault(x => x.Id == itm.qId).TruthCount++;
                    }
                    else
                    {
                        ResList.FirstOrDefault(x => x.Id == itm.qId).FalseCount++;
                    }
                }
            }
            var myChart = new System.Web.Helpers.Chart(width: 800, height: 600)
                          .AddTitle("Статистика по ответам")
                          .AddSeries(
                chartType: "StackedColumn",
                name: "True",
                xValue: ResList.OrderBy(y => y.Id).Select(x => x.Id).ToArray(),
                yValues: ResList.OrderBy(y => y.Id).Select(x => x.TruthCount).ToArray())
                          .AddSeries(
                chartType: "StackedColumn",
                name: "False",
                xValue: ResList.OrderBy(y => y.Id).Select(x => x.Id).ToArray(),
                yValues: ResList.OrderBy(y => y.Id).Select(x => x.FalseCount).ToArray())
                          .Write();

            myChart.Save("~/Content/chart", "jpeg");
            return(File("~/Content/chart", "image/jpeg"));// <----change here
        }
Пример #13
0
        public ActionResult GoalHelperChart()
        {
            var student = (Student)Session["myStudent"];

            System.Web.Helpers.Chart chart = new System.Web.Helpers.Chart(width: 400, height: 200)
                                             .AddTitle("Reading Goal Achievement")
                                             .AddSeries(
                chartType: "line",
                legend: "Rainfall",
                xValue: student.GoalDates,
                yValues: student.GoalLevels
                )
                                             .SetYAxis(
                title: "Achievement"
                )
                                             .SetXAxis(
                title: "Assessment Dates"
                );

            return(File(chart.GetBytes("png"), "image/png"));
        }
Пример #14
0
        public ActionResult GraficoHabEquipo(string tipoHab, string idProy)
        {
            //Se arma la consulta y se ejecuta
            string consulHab     = "Consultar_Num_Habilidades_Equipo'" + tipoHab + "' ,'" + idProy + "'";
            var    tempNumHabEmp = (db.Database.SqlQuery <NumHab>(consulHab)).ToList();

            //Se construyen los ejes del gráfico
            string[] habilidades = tempNumHabEmp.Select(l => l.Habilidad.ToString()).ToArray();
            int[]    totales     = tempNumHabEmp.Select(l => l.Total).ToArray();
            //Se arma el gráfico y se retorna como una imagen.
            var chart = new System.Web.Helpers.Chart(width: 513, height: 400)
                        .AddSeries(name: "HabilidaddesEmp " + tipoHab,
                                   xValue: habilidades,
                                   yValues: totales)
                        .AddLegend()
                        .AddTitle("Habilidades de los Empleados")
                        .SetYAxis("Cantidad de Habilidades")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #15
0
        public ActionResult GraficoTesterBarrasReq(string testerId)
        {
            string proy     = "Exec Consulta_tester_proyectos '" + testerId + "'";
            var    proyecto = (db.Database.SqlQuery <getProyectos>(proy)).ToList();

            string[] proyectos  = proyecto.Select(l => l.proyecto.ToString()).ToArray();
            string[] nombreProy = proyecto.Select(l => l.proyectoNombre.ToString()).ToArray();

            string consultaAlta = "Exec Consulta_Tester_Req_Percentage 'Alta', '" + testerId + "', '" + proyectos[0] + "'";
            var    porcentajeA  = (db.Database.SqlQuery <getPorcentajes>(consultaAlta)).ToList();

            int[] porcentajeAlta = porcentajeA.Select(l => l.parcial).ToArray();

            string consultaIntermedia = "Exec Consulta_Tester_Req_Percentage 'Intermedia', '" + testerId + "', '" + proyectos[0] + "'";
            var    porcentajeI        = (db.Database.SqlQuery <getPorcentajes>(consultaIntermedia)).ToList();

            int[] porcentajeIntermedia = porcentajeA.Select(l => l.parcial).ToArray();

            string consultaBaja = "Exec Consulta_Tester_Req_Percentage 'Baja', '" + testerId + "', '" + 7 + "'";
            var    porcentajeB  = (db.Database.SqlQuery <getPorcentajes>(consultaBaja)).ToList();

            int[] porcentajeBaja = porcentajeA.Select(l => l.parcial).ToArray();

            var chart = new System.Web.Helpers.Chart(width: 600, height: 400)
                        .AddSeries(name: "Baja",

                                   yValues: porcentajeBaja)

                        .AddLegend()

                        .AddTitle("Desempeño de lideres")
                        .SetYAxis("Cantidad de Requerimientos")
                        .SetXAxis("Lider")
                        //.DataBindTable(dataSource: nombreBaja, xField: "Name")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));

            return(File(chart, "image/bytes"));
        }
Пример #16
0
        public ActionResult GraficoEstadoReq(string proy)
        {
            ViewBag.idproy = proy;
            System.Diagnostics.Debug.WriteLine("entro");
            string queryEstadoReq = "Exec Consulta_Cant_Req_Estado" + "'" + proy + "'";
            //Se hace el query a la base de datos
            var tempEstadoReq = (db.Database.SqlQuery <EstadoReq>(queryEstadoReq)).ToList();

            string[] estados  = tempEstadoReq.Select(l => l.estado_actual.ToString()).ToArray();
            string[] cantidad = tempEstadoReq.Select(l => l.Cantidad.ToString()).ToArray();

            var chart = new System.Web.Helpers.Chart(width: 600, height: 400)
                        .AddSeries(name: "Requerimientos",
                                   xValue: estados,
                                   yValues: cantidad)
                        .AddLegend()
                        .AddTitle("Estado de los Requerimientos")
                        .SetYAxis("Cantidad de Requerimientos")
                        .SetXAxis("Estado Actual")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #17
0
        public ActionResult GraficoHistorialReq(string idEmp)
        {
            ViewBag.idEmp = idEmp;
            //Se arma y ejecuta el query dependiendo
            string consulHistorial = "Exec Consultar_Historial_Req_Tester '" + idEmp + "'";
            var    tempEstadoReq   = (db.Database.SqlQuery <HistorialReq>(consulHistorial)).ToList();

            //Se arman los ejes del gráfico
            string[] estados = tempEstadoReq.Select(l => l.Estado.ToString()).ToArray();
            string[] totales = tempEstadoReq.Select(l => l.Total.ToString()).ToArray();
            //Se crea el gráfico y se retorna como una imagen
            var chart = new System.Web.Helpers.Chart(width: 600, height: 400)
                        .AddSeries(name: "Requerimientos",
                                   xValue: estados,
                                   yValues: totales)
                        .AddLegend()
                        .AddTitle("Historial de los Requerimientos")
                        .SetYAxis("Cantidad de Requerimientos")
                        .SetXAxis("Estado Final")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #18
0
        public ActionResult GraficoTotalReq(string proy)
        {
            ViewBag.idproy = proy;
            System.Diagnostics.Debug.WriteLine("entro");
            string queryCantReq = "Exec Consulta_Cantidad_Req_Tester" + "'" + proy + "'";
            //Se hace el query a la base de datos
            var tempCantReq = (db.Database.SqlQuery <CantReq>(queryCantReq)).ToList();

            string[] nombres  = tempCantReq.Select(l => l.nombre.ToString()).ToArray();
            string[] cantidad = tempCantReq.Select(l => l.Cantidad.ToString()).ToArray();

            var chart = new System.Web.Helpers.Chart(width: 600, height: 400)
                        .AddSeries(name: "Testers",
                                   xValue: nombres,
                                   yValues: cantidad)
                        .AddLegend()
                        .AddTitle("Cantidad de Requerimientos por Tester")
                        .SetYAxis("Cantidad de Requerimientos")
                        .SetXAxis("Nombre")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
        public ActionResult DrawBarChart()
        {
            var chart = new System.Web.Helpers.Chart(width: 500, height: 350)
                        .SetXAxis("")
                        .SetYAxis("")
                        .AddTitle("Number of open warrants by type")
                        .AddLegend("Legend", "Legend")
                        .AddSeries(name: "Child Abductions",
                                   chartType: "column",
                                   legend: "Legend",
                                   xValue: new[] { "Awaiting Information", "Active", "Port Alert Only" },
                                   xField: "Status",
                                   yValues: new[] { "27", "4", "10" })
                        .AddSeries(name: "Warrants",
                                   chartType: "column",
                                   legend: "Legend",
                                   xValue: new[] { "Awaiting Information", "Active" },
                                   xField: "Status",
                                   yValues: new[] { "6", "12" })

                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #20
0
        public FileResult GetChart(ReportCriteria criteria)
        {
            Report report = new Report();
            report.Criteria = criteria;

            string LTypeName = "%";

            if (report.Criteria.LTypeID >= 1)
            {
                LTypeName = db.LTypes
                                    .Where(x => x.ID == report.Criteria.LTypeID)
                                    .Select(y => y.Name).First();
            }

            LoadDdlLTypes(Convert.ToInt32(report.Criteria.LTypeID));

            var data = db.Database.SqlQuery<ReportResult>("SpGenReport @startdate, @enddate, @typename, @email",
                                                new SqlParameter("@startdate", report.Criteria.StartDate),
                                                new SqlParameter("@enddate", report.Criteria.EndDate),
                                                new SqlParameter("@typename", LTypeName),
                                                new SqlParameter("@email", "%"))
                                                .OrderBy(a => a.EmployeeName)
                                                .ThenBy(b => b.LTypName);

            report.ReportResults = data.ToArray();

            List<string> EmployeeNames = new List<string>();
            List<int> LvWFHCounts = new List<int>();
            List<int> LvALCounts = new List<int>();
            List<int> LvELCounts = new List<int>();
            List<int> LvSLCounts = new List<int>();
            List<int> LvCTCounts = new List<int>();
            List<int> LvMLCounts = new List<int>();
            List<int> LvPLCounts = new List<int>();
            List<int> LvCLCounts = new List<int>();
            List<int> LvOOOCounts = new List<int>();
            List<int> LvHLCounts = new List<int>();

            foreach (var item in report.ReportResults)
            {
                if (!EmployeeNames.Contains(item.EmployeeName))
                {
                    EmployeeNames.Add(item.EmployeeName);
                }

                switch (item.LTypName)
                {
                    case "Work From Home":
                        LvWFHCounts.Add(item.NoOfDays);
                        break;
                    case "Annual Leave":
                        LvALCounts.Add(item.NoOfDays);
                        break;
                    case "Emergency Leave":
                        LvELCounts.Add(item.NoOfDays);
                        break;
                    case "Sick Leave":
                        LvSLCounts.Add(item.NoOfDays);
                        break;
                    case "Comp Time Off":
                        LvCTCounts.Add(item.NoOfDays);
                        break;
                    case "Marriage Leave":
                        LvMLCounts.Add(item.NoOfDays);
                        break;
                    case "Paternity Leave":
                        LvPLCounts.Add(item.NoOfDays);
                        break;
                    case "Compassionate Leave":
                        LvCLCounts.Add(item.NoOfDays);
                        break;
                    case "Out of Office":
                        LvOOOCounts.Add(item.NoOfDays);
                        break;
                    case "Hospitalization Leave":
                        LvHLCounts.Add(item.NoOfDays);
                        break;
                }
            }

            string themeChart = @"<Chart>
                      <ChartAreas>
                        <ChartArea Name=""Default"" _Template_=""All"">
                          <AxisY>
                            <LabelStyle Font=""Verdana, 12px"" />
                          </AxisY>
                          <AxisX LineColor=""64, 64, 64, 64"" Interval=""1"">
                            <LabelStyle Font=""Verdana, 12px"" />
                          </AxisX>
                        </ChartArea>
                      </ChartAreas>
                    </Chart>";

            var chart = new System.Web.Helpers.Chart(width: 1500, height: 800, theme: themeChart)
                .AddTitle("Leave Data from " + report.Criteria.StartDate.ToString("yyyy/MM/dd") + " till " + report.Criteria.EndDate.ToString("yyyy/MM/dd"))
                .AddLegend("Legend")
                .SetYAxis("Number of days")
                .SetXAxis("Employees");

            if (LvWFHCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Work from home",
                            xValue: EmployeeNames,
                            yValues: LvWFHCounts);
            }

            if (LvALCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Annual Leave",
                            xValue: EmployeeNames,
                            yValues: LvALCounts);
            }

            if (LvELCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Emergency Leave",
                            xValue: EmployeeNames,
                            yValues: LvELCounts);
            }

            if (LvSLCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Sick Leave",
                            xValue: EmployeeNames,
                            yValues: LvSLCounts);
            }

            if (LvCTCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Comp Time Off",
                            xValue: EmployeeNames,
                            yValues: LvCTCounts);
            }

            if (LvMLCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Marriage Leave",
                            xValue: EmployeeNames,
                            yValues: LvMLCounts);
            }

            if (LvPLCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Paternity Leave",
                            xValue: EmployeeNames,
                            yValues: LvPLCounts);
            }

            if (LvCLCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Compassionate Leave",
                            xValue: EmployeeNames,
                            yValues: LvCLCounts);
            }

            if (LvOOOCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Out of Office",
                            xValue: EmployeeNames,
                            yValues: LvOOOCounts);
            }

            if (LvHLCounts.Sum() > 0)
            {
                chart.AddSeries(name: "Hospitalization Leave",
                            xValue: EmployeeNames,
                            yValues: LvHLCounts);
            }

            return File(chart.ToWebImage().GetBytes(), "image/jpeg", "chart.jpg");
        }
Пример #21
0
        public ActionResult GraficoMostrarMostrarPruebasReq(string idProyFK, string nombreRequerimiento)
        {
            string queryPruebasPorEstado      = "EXEC cantidad_pruebas_por_estado " + "'" + nombreRequerimiento + "','" + idProyFK + "';";
            List <PruebasPorEstado> resultado = (db.Database.SqlQuery <PruebasPorEstado>(queryPruebasPorEstado)).ToList();

            if (resultado.Count() == 2) // Solo hay de 2 tipos
            {
                // Averiguar el estado de los 2 tipos de pruebas que hay
                // Algoritmo que encuentra el tipo de pruebas que hay, y rellena el array con el tipo de pruebas que faltan y le pone como cantidad 0
                PruebasPorEstado incompletas = resultado.Find(x => x.estadoFinal == "Incompleto");
                if (incompletas == null)
                {
                    incompletas             = new PruebasPorEstado();
                    incompletas.estadoFinal = "Incompleto";
                    incompletas.cantidad    = 0;
                    resultado.Add(incompletas);
                }
                PruebasPorEstado exitosas = resultado.Find(x => x.estadoFinal == "Exitoso");
                if (exitosas == null)
                {
                    exitosas             = new PruebasPorEstado();
                    exitosas.estadoFinal = "Exitoso";
                    exitosas.cantidad    = 0;
                    resultado.Add(exitosas);
                }
                PruebasPorEstado fallidas = resultado.Find(x => x.estadoFinal == "Fallido");
                if (fallidas == null)
                {
                    fallidas             = new PruebasPorEstado();
                    fallidas.estadoFinal = "Fallido";
                    fallidas.cantidad    = 0;
                    resultado.Add(fallidas);
                }
            }
            else if (resultado.Count() == 1) // Solo hay de un tipo
            // Algoritmo que encuentra el tipo de pruebas que hay, y rellena el array con el tipo de pruebas que faltan y le pone como cantidad 0
            {
                // Averiguar el estado de la unica prueba
                if (resultado.ElementAt(0).estadoFinal == "Exitoso")
                {
                    PruebasPorEstado fallidas = new PruebasPorEstado();
                    fallidas.cantidad    = 0;
                    fallidas.estadoFinal = "Fallido";
                    resultado.Add(fallidas);
                    PruebasPorEstado incompletas = new PruebasPorEstado();
                    incompletas.cantidad    = 0;
                    incompletas.estadoFinal = "Incompleto";
                    resultado.Add(incompletas);
                }
                else if (resultado.ElementAt(0).estadoFinal == "Fallido")
                {
                    PruebasPorEstado exitosas = new PruebasPorEstado();
                    exitosas.cantidad    = 0;
                    exitosas.estadoFinal = "Exitoso";
                    resultado.Add(exitosas);
                    PruebasPorEstado incompletas = new PruebasPorEstado();
                    incompletas.cantidad    = 0;
                    incompletas.estadoFinal = "Incompleto";
                    resultado.Add(incompletas);
                }
                else
                {
                    PruebasPorEstado exitosas = new PruebasPorEstado();
                    exitosas.cantidad    = 0;
                    exitosas.estadoFinal = "Exitoso";
                    resultado.Add(exitosas);
                    PruebasPorEstado fallidas = new PruebasPorEstado();
                    fallidas.cantidad    = 0;
                    fallidas.estadoFinal = "Fallido";
                    resultado.Add(fallidas);
                }
            }
            string[] estados  = resultado.Select(prueba => prueba.estadoFinal.ToString()).ToArray();
            int[]    cantidad = resultado.Select(prueba => prueba.cantidad).ToArray();

            var chart = new System.Web.Helpers.Chart(width: 600, height: 400) // Armar el grafico
                        .AddSeries(name: "Estado Pruebas",
                                   xValue: estados,
                                   yValues: cantidad)
                        .AddLegend()
                        .AddTitle("Estado de las Pruebas")
                        .SetYAxis("Cantidad de Pruebas")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #22
0
        public ActionResult GraficoMostrarTotalPruebasProy(string proy)
        {
            string queryPruebasProy = "Exec pruebas_proyecto" + "'" + proy + "'";  // Se hace el query a la base de datos
            var    tempPruebasProy  = (db.Database.SqlQuery <PruebasProy>(queryPruebasProy)).ToList();

            /*A continuacion, se muestran ejemplos de resultados devueltos por el query y la forma de manejarlos
             * para poder obtener los datos correctos y poder armar el grafico*/
            string[] estadosFinales = tempPruebasProy.Select(pruebasProy => pruebasProy.EstadoFinal.ToString()).ToArray();
            // [Exitoso , Fallido, Exitoso, Incompleto]
            string[] testersResponsables = tempPruebasProy.Select(pruebasProy => pruebasProy.TesterResponsable.ToString()).ToArray();
            // [Andres2 , Andres2, Andres3, Andres3]
            int[] cantidadPruebas = tempPruebasProy.Select(pruebasProy => pruebasProy.CantidadPruebas).ToArray();
            // [1 , 1, 2, 1]
            List <string> testersSinRepetir = new List <string>();

            for (int i = 0; i < testersResponsables.Length; ++i)
            // Añade los DISTINTOS testers que se encuentran en el array de los testers
            {
                if (!(testersSinRepetir.Contains(testersResponsables[i])))
                {
                    testersSinRepetir.Add(testersResponsables[i]);
                }
            }

            /* Se necesitan 3 arreglos con la cantidad de fallidas, la cantidad de exitosas y la cantidad de incompletas
             * por cada tester distinto. Una forma de hacer esto es que cada tester estara indexado en la lista
             * con sus respectivas cantidad de pruebas*/
            int[] cantidadExitosas    = new int[testersSinRepetir.Count];
            int[] cantidadFallidas    = new int[testersSinRepetir.Count];
            int[] cantidadIncompletas = new int[testersSinRepetir.Count];
            for (int i = 0; i < estadosFinales.Length; ++i)
            // Todos los arrays que vienen del proc almacenado tienen la misma indexacion
            {
                int index = testersSinRepetir.IndexOf(testersResponsables[i], 0);
                if (estadosFinales[i] == "Exitoso")
                {
                    cantidadExitosas[index] = cantidadPruebas[i]; // Anade las pruebas exitosas para el tester en la posicion index
                }
                else if (estadosFinales[i] == "Fallido")
                {
                    cantidadFallidas[index] = cantidadPruebas[i];
                }
                else // Incompletas
                {
                    cantidadIncompletas[index] = cantidadPruebas[i];
                }
            }

            /*Un ejemplo final del resultado podria ser:
             * [Esteban, Andres, Roger] // Testers sin repetir
             * [0, 0, 0] // Cantidad de pruebas fallidas, donde Esteban tiene 0, Andres 0 y Roger 0
             * [1, 2, 3] // Cantidad de pruebas incompletas, donde Esteban tiene 1, Andres 2 y Roger 3
             * [4, 2, 1] // Cantidad de pruebas exitosas, donde Esteban tiene 4, Andres 2 y Roger 1 */

            string[] arrayTesterSinRepetir = testersSinRepetir.ToArray();     // Se pasa a un array de string para poder pasarlo al graficador

            var chart = new System.Web.Helpers.Chart(width: 900, height: 450) // Armar el grafico
                        .AddTitle("Pruebas del proyecto")
                        .AddSeries(name: "Exitosas",
                                   chartType: "column",
                                   xValue: arrayTesterSinRepetir,
                                   yValues: cantidadExitosas)
                        .AddSeries(name: "Fallidas",
                                   chartType: "column",
                                   xValue: arrayTesterSinRepetir,
                                   yValues: cantidadFallidas)
                        .AddSeries(name: "Incompletas",
                                   chartType: "column",
                                   xValue: arrayTesterSinRepetir,
                                   yValues: cantidadIncompletas)
                        .AddLegend()
                        .SetYAxis("Cantidad de Pruebas")
                        .SetXAxis("Testers Responsables")
                        .GetBytes("png");

            return(File(chart, "image/bytes"));
        }
Пример #23
0
        public ActionResult GraficoLideresReq()
        {
            string lideres   = "Exec Consulta_lideres_id";
            var    liderList = (db.Database.SqlQuery <getLideres>(lideres)).ToList();

            string[] lider   = liderList.Select(l => l.nombre.ToString()).ToArray();
            string[] liderId = liderList.Select(l => l.cedula.ToString()).ToArray();

            string consulta = "EXEC Consulta_lider_get_proy";


            string reqBaja       = "Exec Consulta_lideres_req_totales 'Baja'";
            string reqIntermedia = "Exec Consulta_lideres_req_totales 'Intermedia'";
            string reqAlta       = "Exec Consulta_lideres_req_totales 'Alta'";

            var baja       = (db.Database.SqlQuery <getLiderReqDificultad>(reqBaja)).ToList();
            var intermedia = (db.Database.SqlQuery <getLiderReqDificultad>(reqIntermedia)).ToList();
            var alta       = (db.Database.SqlQuery <getLiderReqDificultad>(reqAlta)).ToList();

            //Se hace el query a la base de datos

            int[] cantidadBaja       = baja.Select(l => l.req).ToArray();
            int[] cantidadIntermedia = intermedia.Select(l => l.req).ToArray();
            int[] cantidadAlta       = alta.Select(l => l.req).ToArray();

            string[] nombreBaja       = baja.Select(l => l.cedula.ToString()).ToArray();
            string[] nombreIntermedia = intermedia.Select(l => l.cedula.ToString()).ToArray();
            string[] nombreAlta       = alta.Select(l => l.cedula.ToString()).ToArray();

            int[] bajas       = new int[lider.Length];
            int[] intermedias = new int[lider.Length];
            int[] altas       = new int[lider.Length];


            for (int i = 0; i < lider.Length; ++i)
            {
                for (int j = 0; j < nombreBaja.Length; ++j)
                {
                    if (nombreBaja[j] == liderId[i])
                    {
                        bajas[i] = cantidadBaja[j];
                        break;
                    }
                    else
                    {
                        bajas[i] = 0;
                    }
                }
                for (int j = 0; j < nombreIntermedia.Length; ++j)
                {
                    if (nombreIntermedia[j] == liderId[i])
                    {
                        intermedias[i] = cantidadIntermedia[j];
                        break;
                    }
                    else
                    {
                        intermedias[i] = 0;
                    }
                }
                for (int j = 0; j < nombreAlta.Length; ++j)
                {
                    if (nombreAlta[j] == liderId[i])
                    {
                        altas[i] = cantidadAlta[j];
                        break;
                    }
                    else
                    {
                        altas[i] = 0;
                    }
                }
            }

            int xValue = 0;
            var chart  = new System.Web.Helpers.Chart(width: 600, height: 400)
                         .AddSeries(name: "Baja",
                                    xValue: lider,
                                    yValues: bajas)
                         .AddSeries(name: "Intermedio",
                                    yValues: intermedias)
                         .AddSeries(name: "Alta",
                                    yValues: altas)
                         .AddLegend()

                         .AddTitle("Desempeño de lideres")
                         .SetYAxis("Cantidad de Requerimientos")
                         .SetXAxis("Lider")
                         //.DataBindTable(dataSource: nombreBaja, xField: "Name")
                         .GetBytes("png");

            return(File(chart, "image/bytes"));
        }