public void CargarTreeViewEvaluaciones() { trvEvaluaciones.Items.Clear(); CursoControlador cursoControlador = new CursoControlador(); EvaluacionControlador evaluacionControlador = new EvaluacionControlador(); cursos = cursoControlador.ObtenerCursos(); foreach (var curso in cursos) { var evaluacion = evaluacionControlador.ObtenerEvaluacion(curso.IdCurso); TreeViewItem cursoRoot = new TreeViewItem() { Header = curso.Nombre }; cursoRoot.Selected += delegate(object sender, RoutedEventArgs e) { btnAgregarEditar.Content = "Agregar"; tipoBoton = 0; this.txtPregunta.Text = ""; this.txtRespuestaCorrecta.Text = ""; this.txtRespuestaIncorrecta1.Text = ""; this.txtRespuestaIncorrecta2.Text = ""; }; int index = 0; foreach (var pregunta in evaluacion) { TreeViewItem treeViewPregunta = new TreeViewItem() { Header = $"Pregunta {index + 1}" }; treeViewPregunta.Selected += delegate(object sender, RoutedEventArgs e) { e.Handled = true; btnAgregarEditar.Content = "Editar"; tipoBoton = 1; this.txtPregunta.Text = pregunta.PreguntaNombre; this.txtRespuestaCorrecta.Text = pregunta.RespuestaCorrecta; this.txtRespuestaIncorrecta1.Text = pregunta.RespuestaIncorrecta1; this.txtRespuestaIncorrecta2.Text = pregunta.RespuestaIncorrecta2; }; preguntas.Add(evaluacion[index]); cursoRoot.Items.Add(treeViewPregunta); index++; } trvEvaluaciones.Items.Add(cursoRoot); } }
public void CargarTreeViewEvaluaciones() { trvEvaluaciones.Items.Clear(); CursoControlador cursoControlador = new CursoControlador(); EvaluacionControlador evaluacionControlador = new EvaluacionControlador(); cursosDescargados = cursoControlador.ObtenerCursosDescargados(Estado.IdUsuario); foreach (var curso in cursosDescargados) { var evaluacion = evaluacionControlador.ObtenerEvaluacion(curso.IdCurso); TreeViewItem cursoRoot = new TreeViewItem() { Header = curso.Nombre }; int index = 0; foreach (var pregunta in evaluacion) { int i = index; TreeViewItem treeViewPregunta = new TreeViewItem() { Header = $"Pregunta {index + 1}" }; string[] respuestasOrdenAleatorio = new string[3] { pregunta.RespuestaCorrecta, pregunta.RespuestaIncorrecta1, pregunta.RespuestaIncorrecta2 }; respuestasOrdenAleatorio = respuestasOrdenAleatorio.OrderBy(x => rnd.Next()).ToArray(); treeViewPregunta.Selected += delegate(object sender, RoutedEventArgs e) { e.Handled = true; grpPregunta.Visibility = Visibility.Visible; btnComenzar.Visibility = Visibility.Hidden; TreeViewItem currentItem = trvEvaluaciones.SelectedItem as TreeViewItem; TreeViewItem parent = currentItem.Parent as TreeViewItem; if (i == parent.Items.Count - 1) { btnSiguiente.Content = "Finalizar"; } else { btnSiguiente.Content = "Siguiente"; } this.grpPregunta.Header = $"Pregunta {i + 1}"; this.txtPregunta.Text = pregunta.PreguntaNombre; this.rdoOpcion1.Content = respuestasOrdenAleatorio[0]; this.rdoOpcion2.Content = respuestasOrdenAleatorio[1]; this.rdoOpcion3.Content = respuestasOrdenAleatorio[2]; this.rdoOpcion1.GroupName = $"pregunta{i + 1}"; this.rdoOpcion2.GroupName = $"pregunta{i + 1}"; this.rdoOpcion3.GroupName = $"pregunta{i + 1}"; btnSiguiente.Click += delegate { if (i != parent.Items.Count - 1) // Siguiente { if (this.rdoOpcion1.IsChecked == true) { respuestas.Add(this.rdoOpcion1.Content.ToString()); } else if (this.rdoOpcion2.IsChecked == true) { respuestas.Add(this.rdoOpcion2.Content.ToString()); } else if (this.rdoOpcion3.IsChecked == true) { respuestas.Add(this.rdoOpcion3.Content.ToString()); } //else //{ // respuestas.Add(""); // no contestó nada //} this.rdoOpcion1.IsChecked = false; this.rdoOpcion2.IsChecked = false; this.rdoOpcion3.IsChecked = false; TreeViewItem nextItem = parent.Items[i + 1] as TreeViewItem; nextItem.IsSelected = true; } else // Finalizar { double calificacion = 0; for (int j = 0; j < respuestas.Count; j++) { int idx = j; if (respuestas[idx] == evaluacion[idx].RespuestaCorrecta) { ++calificacion; } } calificacion = calificacion * 10 / evaluacion.Count; evaluacionControlador.AsignarCalificacion(Estado.IdUsuario, curso.IdCurso, curso.Nombre, calificacion); MessageBox.Show("Usted terminó exitosamente el curso, pronto recibirá su calificación por correo electrónico", "Curso completado", MessageBoxButton.OK, MessageBoxImage.Information); } }; }; preguntas.Add(evaluacion[index]); cursoRoot.Items.Add(treeViewPregunta); index++; } cursoRoot.Expanded += delegate { cursoRoot.IsExpanded = false; }; trvEvaluaciones.Items.Add(cursoRoot); } }