Exemplo n.º 1
0
        public void EliminaTema()
        {
            if (temaSeleccionado != null)
            {
                if (temaSeleccionado.SubTemas.Count > 0)
                {
                    MessageBox.Show("El tema que desea eliminar contiene subtemas, elimine primero los subtemas para completar la operación",
                                    "Error Interno", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                else
                {
                    MessageBoxResult result = MessageBox.Show("¿Estas seguro de eliminar el tema " + temaSeleccionado.Tema + " y todas sus tesis relacionadas?", "Error Interno", MessageBoxButton.YesNo, MessageBoxImage.Question);

                    if (result == MessageBoxResult.Yes)
                    {
                        if (temaSeleccionado.Padre == 0)
                        {
                            TemasSingletons.Temas(temaSeleccionado.IdProducto).Remove(temaSeleccionado);
                        }
                        else
                        {
                            Temas temaPadre = temaSeleccionado.Parent;
                            temaPadre.RemoveSubTema(temaSeleccionado);
                        }

                        TemasModel temasModel = new TemasModel(idMateria);
                        temasModel.EliminaTema(temaSeleccionado);
                    }
                }
            }
            else
            {
                MessageBox.Show("Seleccione el tema que desea eliminar", "Atención : ", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
        private void BtnAgregarClick(object sender, RoutedEventArgs e)
        {
            TemasModel temasModel = new TemasModel(temaActual.IdProducto);

            if (isUpdating)  //Actualización de temas
            {
                if (chkCambiarPosicion.IsChecked == true && chkNodoPadre.IsChecked == true)
                {
                    temaActual.Nivel = 0;
                    temaActual.Padre = 0;

                    Temas tempTemaPadre = temaActual.Parent;
                    tempTemaPadre.RemoveSubTema(temaActual);

                    temaActual.Parent = null;
                    TemasSingletons.Temas(temaActual.IdProducto).Add(temaActual);
                }
                else if (chkCambiarPosicion.IsChecked == true && chkNodoPadre.IsChecked == false)
                {
                    if (tvAgraria.SelectedItem != null)
                    {
                        temaActual.Nivel = temaSeleccionado.Nivel + 1;
                        temaActual.Padre = temaSeleccionado.IdTema;

                        if (temaActual.Parent == null) //Es tema padre y se va a convertir en tema hijo
                        {
                            TemasSingletons.Temas(temaActual.IdProducto).Remove(temaActual);
                            temaActual.Parent = temaSeleccionado;
                            temaSeleccionado.AddSubtema(temaActual);
                        }
                        else
                        {
                            Temas tempTemaPadre = temaActual.Parent;
                            tempTemaPadre.RemoveSubTema(temaActual);

                            temaSeleccionado.AddSubtema(temaActual);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Si la casilla de cambio de posición se encuentra activa debe seleccionar un tema",
                                        "Atención : ", MessageBoxButton.OK, MessageBoxImage.Information);
                        return;
                    }
                }
                temaActual.Tema = txtTema.Text;
                temasModel.ActualizaTema(temaActual);
            }
            else             //Tema nuevo
            {
                temaActual.Tema     = (temaActual.IdProducto == 1) ? txtTema.Text.ToUpper() : txtTema.Text;
                temaActual.TemaStr  = StringUtilities.PrepareToAlphabeticalOrder(txtTema.Text);
                temaActual.Orden    = 0;
                temaActual.LInicial = Convert.ToChar(txtTema.Text.Substring(0, 1).ToUpper());

                if (chkNodoPadre.IsChecked == true)
                {
                    temaActual.Nivel = 0;
                    temaActual.Padre = 0;
                    TemasSingletons.Temas(temaActual.IdProducto).Add(temaActual);
                }
                else
                {
                    temaActual.Nivel = temaPadre.Nivel + 1;
                    temaActual.Padre = temaPadre.IdTema;
                    temaPadre.SubTemas.Add(temaActual);
                }
                temasModel.InsertaTemaNuevo(temaActual);
            }


            this.Close();
        }