Example #1
0
        public void button1_Click(object sender, EventArgs e)
        {
            string tituloPagina = titulo_pagina.Text;
            string circuito;

            if (lista_circuitos.SelectedItem != null)
            {
                circuito = lista_circuitos.SelectedItem.ToString();
                circuito = circuito.Replace(" ", "");
            }
            else
            {
                circuito = null;
                throw new Exception("Debes seleccionar a que circuito pertenece la pagina");
            }

            //se busca el id del circuito al que pertenece en base al texto del elemento seleccionado de la lista de circuitos
            ClaseCircuito ocircuito = BDCircuitos.buscarCircuitoPadre(circuito);

            int circuitoId = ocircuito.id;

            Circuito.contieneCircuitos = BDCircuitos.contieneCircuitos(circuitoId);

            if (Circuito.contieneCircuitos)
            {
                throw new Exception("No puedes seleccionar un circuito que contenga circuitos, es decir que sea un circuito padre");
            }
            else
            {
                //se crea la pagina con el titulo de la pagina y el id del circuito padre
                Pagina.crearPagina(tituloPagina, circuitoId);
            }

            this.Close();
            Controlador.mostrarMenu();
        }
        private void BuscarHijos(string nombre)
        {
            //se guarda la posicion para a la hora de insertar los circuitos hijos se coloquen justo detras del circuito padre
            int posicion = lista_circuitos.SelectedIndex;

            //se busca el circuito padre
            ocircuitoPadre = BDCircuitos.buscarCircuitoPadre(nombre);

            //si existe el circuito padre se rellenara la lista sino no hara nada
            if (ocircuitoPadre != null)
            {
                //se guarda el id del padre y se rellena una lista con todos los circuitos hijos de ese padre
                int idPadre = ocircuitoPadre.id;
                circuitosHijos = BDCircuitos.buscarCircuitosHijos(idPadre);

                //si la lista de circuitos hijos no esta vacia se recorrera para rellenar el menu de seleccion de circuito
                if (circuitosHijos != null)
                {
                    foreach (ClaseCircuito ocircuito in circuitosHijos)
                    {
                        //funcion para evitar repetidos
                        for (int x = lista_circuitos.Items.Count - 1; x >= 0; --x)
                        {
                            string removelistitem = ocircuito.titulo;
                            if (lista_circuitos.Items[x].ToString().Contains(removelistitem))
                            {
                                lista_circuitos.Items.RemoveAt(x);
                            }
                        }
                        //se busca si el circuito que se va a insertar al menu tiene hijos
                        contieneCircuitos = BDCircuitos.contieneCircuitos(ocircuito.id);

                        //si el circuito que se va a insertar tiene hijos se insertara con un " >" por detras sino no
                        if (contieneCircuitos)
                        {
                            int nivel = ocircuito.nivel;

                            //dependiendo de a que nivel esten se les pondra una separacion para poder diferenciar a que altura estan
                            switch (nivel)
                            {
                            case 1:
                                lista_circuitos.Items.Add(ocircuito.titulo + " >");
                                break;

                            case 2:
                                lista_circuitos.Items.Insert(posicion + 1, "  " + ocircuito.titulo + " >");
                                break;

                            case 3:
                                lista_circuitos.Items.Insert(posicion + 1, "    " + ocircuito.titulo + " >");
                                break;

                            case 4:
                                lista_circuitos.Items.Insert(posicion + 1, "      " + ocircuito.titulo + " >");
                                break;

                            case 5:
                                lista_circuitos.Items.Insert(posicion + 1, "        " + ocircuito.titulo + " >");
                                break;
                            }
                        }
                        else
                        {
                            int nivel = ocircuito.nivel;

                            //dependiendo de a que nivel esten se les pondra una separacion para poder diferenciar a que altura estan
                            switch (nivel)
                            {
                            case 1:
                                lista_circuitos.Items.Insert(posicion + 1, ocircuito.titulo);
                                break;

                            case 2:
                                lista_circuitos.Items.Insert(posicion + 1, "  " + ocircuito.titulo);
                                break;

                            case 3:
                                lista_circuitos.Items.Insert(posicion + 1, "    " + ocircuito.titulo);
                                break;

                            case 4:
                                lista_circuitos.Items.Insert(posicion + 1, "      " + ocircuito.titulo);
                                break;

                            case 5:
                                lista_circuitos.Items.Insert(posicion + 1, "        " + ocircuito.titulo);
                                break;
                            }
                        }
                    }
                    circuitosHijos.Clear();
                }
                else
                {
                    circuitosHijos = new ArrayList();
                }
                circuitosHijos.Clear();
            }
        }