public List <E_PROMEDIO> getPromedios() { vListaPuestos = new List <int>(); if (vIdPuestoCandidato == null) { if (vIdCandidatoVsPuesto != Guid.Empty) { E_CANDIDATO_VS_PUESTOS oCandidatoPuestos = ContextoConsultasComparativas.oCandidatoVsPuestos.Where(w => w.vIdCandidatoVsPuestos == vIdCandidatoVsPuesto).FirstOrDefault(); vListaPuestos = oCandidatoPuestos.vListaPuestos; } } else { vListaPuestos = new List <int>() { (int)vIdPuestoCandidato }; } var vXelements = vListaPuestos.Select(x => new XElement("PUESTO", new XAttribute("ID_PUESTO", x) )); XElement SELECCIONADOS = new XElement("PUESTOS", vXelements ); ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio(); vCandidatoPuestos = nComparativas.ObtieneCandidatoPuestos(pID_CANDIDATO: vIdCandidato, pXML_PUESTOS: SELECCIONADOS.ToString(), vFgConsultaParcial: vFgConsultaParcial, vFgCalificacionCero: vFgEvaluacionesCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS { CL_COMPETENCIA = s.CL_COMPETENCIA, NB_COMPETENCIA = s.NB_COMPETENCIA, NO_VALOR_NIVEL = s.NO_VALOR_NIVEL, NB_CANDIDATO = s.NB_CANDIDATO, NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO, PR_CANDIDATO_PUESTO = s.PR_CANDIDATO_PUESTO, DS_COMPETENCIA = s.DS_COMPETENCIA, ID_BATERIA = s.ID_BATERIA, NB_PUESTO = s.NB_PUESTO, CL_PUESTO = s.CL_PUESTO, CL_COLOR = s.CL_COLOR, ID_PUESTO = s.ID_PUESTO, PR_TRUNCADO = CalculaPorcentaje(s.PR_CANDIDATO_PUESTO) }).OrderBy(s => s.CL_COMPETENCIA).ToList(); List <E_PROMEDIO> vlstPromedios = new List <E_PROMEDIO>(); foreach (var item in vListaPuestos) { List <E_PROMEDIO> vlist = new List <E_PROMEDIO>(); foreach (var i in vCandidatoPuestos) { if (item == i.ID_PUESTO && i.NO_VALOR_NIVEL != 0) { vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_PUESTO, PORCENTAJE = i.PR_TRUNCADO }); } } vlstPromedios.Add(new E_PROMEDIO { NB_PUESTO = vlist.Select(s => s.NB_PUESTO).FirstOrDefault(), PROMEDIO = vlist.Average(s => s.PORCENTAJE) }); } return(vlstPromedios); }
protected void CargarCandidatoPuestos() { vListaPuestos = new List <int>(); if (vIdPuestoCandidato == null) { if (vIdCandidatoVsPuesto != Guid.Empty) { E_CANDIDATO_VS_PUESTOS oCandidatoPuestos = ContextoConsultasComparativas.oCandidatoVsPuestos.Where(w => w.vIdCandidatoVsPuestos == vIdCandidatoVsPuesto).FirstOrDefault(); vListaPuestos = oCandidatoPuestos.vListaPuestos; } } else { vListaPuestos = new List <int>() { (int)vIdPuestoCandidato }; } var vXelements = vListaPuestos.Select(x => new XElement("PUESTO", new XAttribute("ID_PUESTO", x) )); XElement SELECCIONADOS = new XElement("PUESTOS", vXelements ); ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio(); vCandidatoPuestos = nComparativas.ObtieneCandidatoPuestos(pID_CANDIDATO: vIdCandidato, pXML_PUESTOS: SELECCIONADOS.ToString(), vFgConsultaParcial: vFgConsultaParcial, vFgCalificacionCero: vFgEvaluacionesCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS { CL_COMPETENCIA = s.CL_COMPETENCIA, NB_COMPETENCIA = s.NB_COMPETENCIA, NO_VALOR_NIVEL = s.NO_VALOR_NIVEL, NB_CANDIDATO = s.NB_CANDIDATO, NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO, PR_CANDIDATO_PUESTO = s.PR_CANDIDATO_PUESTO, DS_COMPETENCIA = s.DS_COMPETENCIA, ID_BATERIA = s.ID_BATERIA, NB_PUESTO = s.NB_PUESTO, CL_PUESTO = s.CL_PUESTO, CL_COLOR = s.CL_COLOR, ID_PUESTO = s.ID_PUESTO, PR_TRUNCADO = CalculaPorcentaje(s.PR_CANDIDATO_PUESTO), CL_SOLICITUD = s.CL_SOLICITUD }).OrderBy(s => s.CL_COMPETENCIA).ToList(); //if (vCandidatoPuestos.Count > 0) //{ // vs_NB_CANDIDATO = vCandidatoPuestos.FirstOrDefault().NB_CANDIDATO; //} // dvPuestos.Controls.Add(GenerarTablaPuestos(vCandidatoPuestos)); // var vPuestoCompetencia = vCandidatoPuestos.Select(s => new { s.NO_VALOR_CANDIDATO, s.NB_CANDIDATO, s.NB_COMPETENCIA, s.CL_SOLICITUD }).Distinct().ToList(); //ColumnSeries vCandidato = new ColumnSeries(); // if (vPuestoCompetencia.Count > 0) // lbCandidatosCom.InnerText = "(" + vPuestoCompetencia.FirstOrDefault().CL_SOLICITUD + ") " + vPuestoCompetencia.FirstOrDefault().NB_CANDIDATO; // GraficaCandidatoPuestos(vCandidatoPuestos); //List<E_PROMEDIO> vlstPromedios = new List<E_PROMEDIO>(); //foreach (var item in vListaPuestos) //{ // List<E_PROMEDIO> vlist = new List<E_PROMEDIO>(); // foreach (var i in vCandidatoPuestos) // { // if (item == i.ID_PUESTO && i.NO_VALOR_NIVEL != 0) // { // vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_PUESTO, PORCENTAJE = i.PR_TRUNCADO, PORCENTAJE_NO_TRUNCADO = i.PR_CANDIDATO_PUESTO }); // } // } // 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() // , // PORCENTAJE_NO_TRUNCADO = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) // }); //} //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; // } //} }
protected void CargarCandidatoPuestos() { vListaPuestos = new List <int>(); if (vIdPuestoCandidato == null) { if (vIdCandidatoVsPuesto != Guid.Empty) { E_CANDIDATO_VS_PUESTOS oCandidatoPuestos = ContextoConsultasComparativas.oCandidatoVsPuestos.Where(w => w.vIdCandidatoVsPuestos == vIdCandidatoVsPuesto).FirstOrDefault(); vListaPuestos = oCandidatoPuestos.vListaPuestos; } } else { vListaPuestos = new List <int>() { (int)vIdPuestoCandidato }; } var vXelements = vListaPuestos.Select(x => new XElement("PUESTO", new XAttribute("ID_PUESTO", x) )); XElement SELECCIONADOS = new XElement("PUESTOS", vXelements ); ConsultasComparativasNegocio nComparativas = new ConsultasComparativasNegocio(); vCandidatoPuestos = nComparativas.ObtieneCandidatoPuestos(pID_CANDIDATO: vIdCandidato, pXML_PUESTOS: SELECCIONADOS.ToString(), vFgConsultaParcial: vFgConsultaParcial, vFgCalificacionCero: vFgEvaluacionesCero).Select(s => new E_GRAFICA_PUESTO_CANDIDATOS { CL_COMPETENCIA = s.CL_COMPETENCIA, NB_COMPETENCIA = s.NB_COMPETENCIA, NO_VALOR_NIVEL = s.NO_VALOR_NIVEL, NB_CANDIDATO = s.NB_CANDIDATO, NO_VALOR_CANDIDATO = s.NO_VALOR_CANDIDATO, PR_CANDIDATO_PUESTO = s.PR_CANDIDATO_PUESTO, DS_COMPETENCIA = s.DS_COMPETENCIA, ID_BATERIA = s.ID_BATERIA, NB_PUESTO = s.NB_PUESTO, CL_PUESTO = s.CL_PUESTO, CL_COLOR = s.CL_COLOR, ID_PUESTO = s.ID_PUESTO, PR_TRUNCADO = CalculaPorcentaje(s.PR_CANDIDATO_PUESTO), CL_SOLICITUD = s.CL_SOLICITUD }).OrderBy(s => s.CL_COMPETENCIA).ToList(); if (vCandidatoPuestos.Count > 0) { vs_NB_CANDIDATO = vCandidatoPuestos.FirstOrDefault().NB_CANDIDATO; } GraficaCandidatoPuestos(vCandidatoPuestos); //txtPromedio.Enabled = false; //var promedio = vCandidatoPuestos.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 vListaPuestos) { List <E_PROMEDIO> vlist = new List <E_PROMEDIO>(); foreach (var i in vCandidatoPuestos) { if (item == i.ID_PUESTO && i.NO_VALOR_NIVEL != 0) { vlist.Add(new E_PROMEDIO { NB_PUESTO = i.NB_PUESTO, PORCENTAJE = i.PR_TRUNCADO, PORCENTAJE_NO_TRUNCADO = i.PR_CANDIDATO_PUESTO }); } } 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() , PORCENTAJE_NO_TRUNCADO = vlist.Average(s => s.PORCENTAJE_NO_TRUNCADO) }); } 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; } } }