protected void CargarPuestoCandidatos() { vListaCandidatos = new List <int>(); if (vIdPuestoVsCandidatos != Guid.Empty) { E_PUESTO_VS_CANDIDATOS oPuestoCandidatos = ContextoConsultasComparativas.oPuestoVsCandidatos.Where(t => t.vIdPuestoVsCandidatos == vIdPuestoVsCandidatos).FirstOrDefault(); vListaCandidatos = oPuestoCandidatos.vListaCandidatos; } var vXelements = vListaCandidatos.Select(x => new XElement("CANDIDATO", new XAttribute("ID_CANDIDATO", x))); XElement SELECCIONADOS = new XElement("CANDIDATOS", vXelements ); ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio(); vPuestoCandidatos = nComparativas.ObtienePuestoCandidatos(pID_PUESTO: vIdPuesto, pXML_CANDIDATOS: SELECCIONADOS.ToString(), pFgConsultaParcial: vFgConsultaParcial, pFgCalificacionCero: vFgCalificacionCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS { NB_COMPETENCIA = s.NB_COMPETENCIA, NO_VALOR_NIVEL = s.NO_VALOR_NIVEL, CL_CANDIDATO = s.CL_CANDIDATO, NB_CANDIDATO = s.NB_CANDIDATO, NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO, ID_CANDIDATO = s.ID_CANDIDATO, DS_COMPETENCIA = s.DS_COMPETENCIA, ID_BATERIA = s.ID_BATERIA, CL_PUESTO = s.CL_PUESTO, NB_PUESTO = s.NB_PUESTO, PR_CANDIDATO = s.PR_CANDIDATO, CL_COLOR = s.CL_COLOR, PR_TRUNCADO = CalculaPorcentaje(s.PR_CANDIDATO), CL_COMPETENCIA = s.CL_COMPETENCIA, CL_SOLICITUD = s.CL_SOLICITUD }).OrderBy(s => s.CL_COMPETENCIA).ToList(); //if (vPuestoCandidatos.Count > 0) //{ // vs_NB_PUESTO = vPuestoCandidatos.FirstOrDefault().NB_PUESTO; //} //lbCandidatos.Controls.Add(GenerarTablaCandidatos(vPuestoCandidatos)); //var vPuestoCompetencia = vPuestoCandidatos.Select(s => new { s.NO_VALOR_NIVEL, s.NB_PUESTO, s.NB_COMPETENCIA, s.CL_PUESTO }).Distinct().ToList(); //if (vPuestoCompetencia.Count > 0) //lbPuestoCom.InnerText = "- (" + vPuestoCompetencia.FirstOrDefault().CL_PUESTO + ") " + vPuestoCompetencia.FirstOrDefault().NB_PUESTO; //GraficaPuestoCandidatos(vPuestoCandidatos); //txtPromedio.Enabled = false; //var promedio = vPuestoCandidatos.Average(s => s.PR_TRUNCADO); ////if (Convert.ToDouble(promedio) <= 100 && Convert.ToDouble(promedio) >= 0) // txtPromedio.Value = Convert.ToDouble(promedio); //else if(Convert.ToDouble(promedio) > 100) // txtPromedio.Value = 100; //else if (Convert.ToDouble(promedio) < 0) // txtPromedio.Value = 0; //List<E_PROMEDIO> vlstPromedios = new List<E_PROMEDIO>(); //foreach (var item in vListaCandidatos) //{ // List<E_PROMEDIO> vlist = new List<E_PROMEDIO>(); // foreach (var i in vPuestoCandidatos) // { // if (item == i.ID_CANDIDATO && i.NO_VALOR_NIVEL != 0) // { // vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_CANDIDATO, PORCENTAJE = i.PR_TRUNCADO, PORCENTAJE_NO_TRUNCADO = i.PR_CANDIDATO }); // } // } // vlstPromedios.Add(new E_PROMEDIO // { // NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(), // PROMEDIO = vlist.Average(s => s.PORCENTAJE), // FG_SUPERA_130 = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? true : false, // PROMEDIO_TXT = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString() + "(*)" : Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString() // }); //} //rgdPromedios.DataSource = vlstPromedios.Where(w => w.NB_PUESTO != null); //rgdPromedios.DataBind(); //rgdPromedios.Rebind(); //for (int i = 0; i < vlstPromedios.Count; i++) //{ // if (vlstPromedios[i].FG_SUPERA_130 == true) // { // divMensajeMayor130.Visible = true; // i = vlstPromedios.Count; // } //} }
private void GenerarGrafica() { XElement vXelements = new XElement("CANDIDATO", new XAttribute("ID_CANDIDATO", vIdCandidato)); XElement SELECCIONADOS = new XElement("CANDIDATOS", vXelements); ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio(); vPuestoCandidatos = nComparativas.ObtienePuestoCandidatos(pID_PUESTO: vIdPuesto, pXML_CANDIDATOS: SELECCIONADOS.ToString(), pFgConsultaParcial: vFgConsultaParcial, pFgCalificacionCero: vFgCalificacionCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS { NB_COMPETENCIA = s.NB_COMPETENCIA, CL_PUESTO = s.CL_PUESTO, CL_SOLICITUD = s.CL_SOLICITUD, NO_VALOR_NIVEL = s.NO_VALOR_NIVEL, NB_CANDIDATO = s.NB_CANDIDATO, NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO, ID_CANDIDATO = s.ID_CANDIDATO, DS_COMPETENCIA = s.DS_COMPETENCIA, ID_BATERIA = s.ID_BATERIA, NB_PUESTO = s.NB_PUESTO, PR_CANDIDATO = s.PR_CANDIDATO, CL_COLOR = s.CL_COLOR, PR_TRUNCADO = CalculaPorcentaje(s.PR_CANDIDATO) }).ToList(); GraficaPuestoCandidatos(vPuestoCandidatos); List <E_PROMEDIO> vlstPromedios = new List <E_PROMEDIO>(); List <E_PROMEDIO> vlist = new List <E_PROMEDIO>(); foreach (var i in vPuestoCandidatos) { if (i.ID_CANDIDATO == vIdCandidato && i.NO_VALOR_NIVEL != 0) { vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_CANDIDATO, PORCENTAJE = i.PR_TRUNCADO }); } } vlstPromedios.Add(new E_PROMEDIO { NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(), PROMEDIO = vlist.Average(s => s.PORCENTAJE), FG_SUPERA_130 = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? true : false, PROMEDIO_TXT = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) >= 130 ? Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString() + "(*)" : Decimal.Round(vlist.Average(s => s.PORCENTAJE) ?? 1, 2).ToString() //NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(), PROMEDIO = vlist.Average(s => s.PORCENTAJE) }); for (int i = 0; i < vlstPromedios.Count; i++) { if (vlstPromedios[i].FG_SUPERA_130 == true) { divMensajeMayor130.Visible = true; i = vlstPromedios.Count; } } rgdPromedios.DataSource = vlstPromedios; rgdPromedios.DataBind(); rgdPromedios.Rebind(); }