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);
            }
        }
Пример #2
0
        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);
            }
        }
        private void BtnAgregarEditar_Click(object sender, RoutedEventArgs e)
        {
            if (trvEvaluaciones.SelectedItem != null)
            {
                if (tipoBoton == 0) // agregar pregunta
                {
                    EvaluacionControlador evaluacionControlador = new EvaluacionControlador();
                    var  str       = (trvEvaluaciones.SelectedItem as TreeViewItem).Header.ToString();
                    bool resultado = evaluacionControlador.AgregarPregunta(cursos[cursos.IndexOf(new Curso()
                    {
                        Nombre = str
                    })].IdCurso,
                                                                           txtPregunta.Text,
                                                                           txtRespuestaCorrecta.Text,
                                                                           txtRespuestaIncorrecta1.Text,
                                                                           txtRespuestaIncorrecta2.Text);

                    if (resultado)
                    {
                        MessageBox.Show("Pregunta creada con éxito!", "Exito!", MessageBoxButton.OK, MessageBoxImage.Information);
                        CargarTreeViewEvaluaciones();
                    }
                    else
                    {
                        MessageBox.Show("Error al intentar guardar la pregunta en la base de datos", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
                else if (tipoBoton == 1) // editar pregunta
                {
                    EvaluacionControlador evaluacionControlador = new EvaluacionControlador();
                    var  str       = ((trvEvaluaciones.SelectedItem as TreeViewItem).Parent as TreeViewItem).Header.ToString();
                    bool resultado = evaluacionControlador.EditarPregunta(
                        preguntas[preguntas.IndexOf(
                                      new Pregunta()
                    {
                        IdCurso = cursos[cursos.IndexOf(
                                             new Curso()
                        {
                            Nombre = str
                        })].IdCurso
                    })].IdPregunta,
                        txtPregunta.Text,
                        txtRespuestaCorrecta.Text,
                        txtRespuestaIncorrecta1.Text,
                        txtRespuestaIncorrecta2.Text);

                    if (resultado)
                    {
                        MessageBox.Show("Pregunta editada con éxito!", "Exito!", MessageBoxButton.OK, MessageBoxImage.Information);
                        CargarTreeViewEvaluaciones();
                    }
                    else
                    {
                        MessageBox.Show("Error al intentar guardar la pregunta editada en la base de datos", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Seleccione primero un curso o una pregunta para agregar o editar una pregunta", "Advertencia", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }