Función Guardar Perfile
unknown
csharp
a year ago
18 kB
23
Indexable
Never
public void GuardarPerfilEgreso() { var semestres = _semestreService.GetSemestres(); var sedes = _usuarioService.GetSedes(); var carreras = _carreraService.ListarCarreras(); var desempenos = _rubricaService.GetTiposDesempeno(0); foreach (var semestre in semestres) { foreach (var sede in sedes) { var estudiantes = _estudianteService.GetEstudiantesPerfilEgreso(semestre.Id, sede.Id, 0); var evaluaciones = GetEvaluacionesDataSedeCarrera(semestre.Id, sede.Id, 0); var listaConcatenada = new List<PonderacionDesempeno>(); foreach (var evaluacion in evaluaciones) { foreach (var estudiante in estudiantes) { var rubricas = _rubricaService.GetRubricaEvaluacionDesempenosByEstudiante(evaluacion.Id, estudiante.Id); foreach (var desempeno in desempenos) { var ponderacionDesempeno = 0.0; var count = 0; var puntajeMaximo = 0; var totalPorcentajeCriterios = 0; var puntajeObtenidoDesempeno = 0; var auxPorcentaje = 0.0; var auxEvaluacionPorcentaje = 0.0; var rubricasDesempeno = rubricas.Where(rubrica => rubrica.TipoDesempeno.Id == desempeno.Id).ToList(); puntajeObtenidoDesempeno = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Sum(criterio => criterio.RubricaEvaluaciones .Where(evaluacionRubrica => evaluacionRubrica.IdEstudiante == estudiante.Id && evaluacion.Id == evaluacionRubrica.IdEvaluacion) .Sum(evaluacionRubrica => evaluacionRubrica.Puntaje))); count = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Count); puntajeMaximo = count * 4; totalPorcentajeCriterios = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Sum(criterio => criterio.Porcentaje)); auxPorcentaje = (double)totalPorcentajeCriterios / 100; auxEvaluacionPorcentaje = (double)evaluacion.Porcentaje / 100; ponderacionDesempeno = puntajeMaximo != 0 ? (double)puntajeObtenidoDesempeno / puntajeMaximo * auxPorcentaje * auxEvaluacionPorcentaje : 0.0; var ponderacionDesempenoFinal = new PonderacionDesempeno { ponderacion = ponderacionDesempeno, desempeno = desempeno.CodTipoDesempeno }; listaConcatenada.Add(ponderacionDesempenoFinal); } } } var data = listaConcatenada.GroupBy(p => p.desempeno) .Select(g => new { desempeno = g.Key, sumaPonderaciones = g.Sum(p => p.ponderacion) }).ToList(); if (data.Count() > 0) { var egreso = new RegistroPracticaPerfilEgreso { A = data[0].sumaPonderaciones, B = data[1].sumaPonderaciones, C = data[2].sumaPonderaciones, D = data[3].sumaPonderaciones, E = data[4].sumaPonderaciones, F = data[5].sumaPonderaciones, G = data[6].sumaPonderaciones, H = data[7].sumaPonderaciones, I = data[8].sumaPonderaciones, J = data[9].sumaPonderaciones, K = data[10].sumaPonderaciones, L = data[11].sumaPonderaciones, idAux = sede.Id, isSede = 1, idSemestre = semestre.Id }; var auxPerfil = _usuarioService.GuardarPerfilEgreso(egreso); } else { var egreso = new RegistroPracticaPerfilEgreso { A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, idAux = sede.Id, isSede = 1, idSemestre = semestre.Id }; var auxPerfil = _usuarioService.GuardarPerfilEgreso(egreso); } } } foreach (var semestre in semestres) { foreach (var carrera in carreras) { var estudiantes = _estudianteService.GetEstudiantesPerfilEgreso(semestre.Id, 0, carrera.Id); var evaluaciones = GetEvaluacionesDataSedeCarrera(semestre.Id, 0, carrera.Id); var listaConcatenada = new List<PonderacionDesempeno>(); foreach (var evaluacion in evaluaciones) { foreach (var estudiante in estudiantes) { var rubricas = _rubricaService.GetRubricaEvaluacionDesempenosByEstudiante(evaluacion.Id, estudiante.Id); foreach (var desempeno in desempenos) { var ponderacionDesempeno = 0.0; var count = 0; var puntajeMaximo = 0; var totalPorcentajeCriterios = 0; var puntajeObtenidoDesempeno = 0; var rubricasDesempeno = rubricas.Where(rubrica => rubrica.TipoDesempeno.Id == desempeno.Id).ToList(); puntajeObtenidoDesempeno = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Sum(criterio => criterio.RubricaEvaluaciones .Where(evaluacionRubrica => evaluacionRubrica.IdEstudiante == estudiante.Id && evaluacion.Id == evaluacionRubrica.IdEvaluacion) .Sum(evaluacionRubrica => evaluacionRubrica.Puntaje))); count = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Count); puntajeMaximo = count * 4; totalPorcentajeCriterios = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Sum(criterio => criterio.Porcentaje)); ponderacionDesempeno = puntajeMaximo != 0 ? (double)puntajeObtenidoDesempeno / puntajeMaximo * (double)totalPorcentajeCriterios / 100 * (double)evaluacion.Porcentaje / 100 : 0.0; var ponderacionDesempenoFinal = new PonderacionDesempeno { ponderacion = ponderacionDesempeno, desempeno = desempeno.CodTipoDesempeno }; listaConcatenada.Add(ponderacionDesempenoFinal); } } } var data = listaConcatenada.GroupBy(p => p.desempeno) .Select(g => new { desempeno = g.Key, sumaPonderaciones = g.Sum(p => p.ponderacion) }).ToList(); if (data.Count() > 0) { var egreso = new RegistroPracticaPerfilEgreso { A = data[0].sumaPonderaciones, B = data[1].sumaPonderaciones, C = data[2].sumaPonderaciones, D = data[3].sumaPonderaciones, E = data[4].sumaPonderaciones, F = data[5].sumaPonderaciones, G = data[6].sumaPonderaciones, H = data[7].sumaPonderaciones, I = data[8].sumaPonderaciones, J = data[9].sumaPonderaciones, K = data[10].sumaPonderaciones, L = data[11].sumaPonderaciones, idAux = carrera.Id, isSede = 0, idSemestre = semestre.Id }; var auxPerfil = _usuarioService.GuardarPerfilEgreso(egreso); } else { var egreso = new RegistroPracticaPerfilEgreso { A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, idAux = carrera.Id, isSede = 0, idSemestre = semestre.Id }; var auxPerfil = _usuarioService.GuardarPerfilEgreso(egreso); } } } } public void GuardarPerfilEgresoArea() { var semestres = _semestreService.GetSemestres(); var sedes = _usuarioService.GetSedes(); var carreras = _carreraService.ListarCarreras(); var tipoPracticas = _usuarioService.GetTipoNRC(); var tipoPracticaCodigos = _usuarioService.GetTipoNRCCodigo(); var desempenos = _rubricaService.GetTiposDesempeno(0); foreach (var semestre in semestres) { foreach (var sede in sedes) { foreach (var carrera in carreras) { foreach (var tipoPractica in tipoPracticas) { foreach (var tipoPracticaCodigo in tipoPracticaCodigos) { var evaluaciones = GetEvaluacionesArea(semestre.Id, sede.Id, carrera.Id, tipoPractica.Id, tipoPracticaCodigo.Id); //var estudiantes = _estudianteService.GetEstudiantesPerfilEgresoArea(semestre.Id, sede.Id, carrera.Id, tipoPractica.Id, tipoPracticaCodigo.Id); var listaConcatenada = new List<PonderacionDesempeno>(); foreach (var evaluacion in evaluaciones) { //foreach (var estudiante in estudiantes) //{ var rubricas = _rubricaService.GetRubricaEvaluacionDesempenosByEstudiante(evaluacion.Id, evaluacion.Estudiante.Id); foreach (var desempeno in desempenos) { var ponderacionDesempeno = 0.0; var count = 0; var puntajeMaximo = 0; var totalPorcentajeCriterios = 0; var puntajeObtenidoDesempeno = 0; var rubricasDesempeno = rubricas.Where(rubrica => rubrica.TipoDesempeno.Id == desempeno.Id).ToList(); puntajeObtenidoDesempeno = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Sum(criterio => criterio.RubricaEvaluaciones .Where(evaluacionRubrica => evaluacion.Id == evaluacionRubrica.IdEvaluacion) .Sum(evaluacionRubrica => evaluacionRubrica.Puntaje))); count = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Count); puntajeMaximo = count * 4; totalPorcentajeCriterios = rubricasDesempeno.Sum(rubrica => rubrica.RubricaCriterios.Sum(criterio => criterio.Porcentaje)); ponderacionDesempeno = puntajeMaximo != 0 ? (double)puntajeObtenidoDesempeno / puntajeMaximo * (double)totalPorcentajeCriterios / 100 * (double)evaluacion.Porcentaje / 100 : 0.0; var ponderacionDesempenoFinal = new PonderacionDesempeno { ponderacion = ponderacionDesempeno, desempeno = desempeno.CodTipoDesempeno }; listaConcatenada.Add(ponderacionDesempenoFinal); } //} } var data = listaConcatenada.GroupBy(p => p.desempeno) .Select(g => new { desempeno = g.Key, sumaPonderaciones = g.Sum(p => p.ponderacion) }).ToList(); if (data.Count() > 0) { var egreso = new PerfilEgresoArea { A = data[0].sumaPonderaciones, B = data[1].sumaPonderaciones, C = data[2].sumaPonderaciones, D = data[3].sumaPonderaciones, E = data[4].sumaPonderaciones, F = data[5].sumaPonderaciones, G = data[6].sumaPonderaciones, H = data[7].sumaPonderaciones, I = data[8].sumaPonderaciones, J = data[9].sumaPonderaciones, K = data[10].sumaPonderaciones, L = data[11].sumaPonderaciones, idSemestre = semestre.Id, idSede = sede.Id, idCarrera = carrera.Id, idTipoPractica = tipoPractica.Id, idTipoPracticaCodigo = tipoPracticaCodigo.Id }; //Funcion para guardar var auxPerfil = _usuarioService.GuardarPerfilEgresoArea(egreso); } else { var egreso = new PerfilEgresoArea { A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, idSemestre = semestre.Id, idSede = sede.Id, idCarrera = carrera.Id, idTipoPractica = tipoPractica.Id, idTipoPracticaCodigo = tipoPracticaCodigo.Id }; //funcion para guardar var auxPerfil = _usuarioService.GuardarPerfilEgresoArea(egreso); } } } } } } }