コード例 #1
0
        /// <summary>
        /// Añade una colección a favoritos
        /// </summary>
        private void buttonFavoritos_Click(object sender, EventArgs e)
        {
            Button       buttonClicked = sender as Button;
            MySqlCommand favorito      = new MySqlCommand("Select favorito from coleccion where nombre_user = @nombre_user and nombre = @nombre", connection);

            favorito.Parameters.AddWithValue("@nombre_user", UsuarioActivo);
            favorito.Parameters.AddWithValue("@nombre", buttonClicked.Name);

            ControlElemento.Elemento elemento = flowLayoutPanelColecciones.Controls.Find(buttonClicked.Name, false).Cast <ControlElemento.Elemento>().First();

            connection.Open();

            MySqlDataReader readerFav = favorito.ExecuteReader();

            readerFav.Read();

            if (readerFav["favorito"].ToString() == "0")
            {
                favorito = new MySqlCommand("Update coleccion set favorito = 1 where nombre_user = @nombre_user and nombre = @nombre", connection);
                elemento.setFavorito(true);
            }
            else
            {
                favorito = new MySqlCommand("Update coleccion set favorito = 0 where nombre_user = @nombre_user and nombre = @nombre", connection);
                elemento.setFavorito(false);
            }

            readerFav.Close();

            favorito.Parameters.AddWithValue("@nombre_user", UsuarioActivo);
            favorito.Parameters.AddWithValue("@nombre", buttonClicked.Name);

            favorito.ExecuteNonQuery();
            connection.Close();
        }
コード例 #2
0
        /// <summary>
        /// Vacía la pantalla de elementos
        /// </summary>
        private void limpiarElementos()
        {
            int indexButtonElement = flowLayoutPanelElementos.Controls.OfType <ControlElemento.Elemento>().Count() - 1;

            for (int i = indexButtonElement; i >= 0; i--)
            {
                ControlElemento.Elemento elemento = flowLayoutPanelElementos.Controls.OfType <ControlElemento.Elemento>().ElementAt(i);
                flowLayoutPanelElementos.Controls.Remove(elemento);
            }
        }
コード例 #3
0
        /// <summary>
        /// Vacía la pantalla de colecciones
        /// </summary>
        private void limpiarColecciones()
        {
            int indexButtonElement = flowLayoutPanelColecciones.Controls.OfType <ControlElemento.Elemento>().Count() - 1;

            for (int i = indexButtonElement; i >= 0; i--)
            {
                ControlElemento.Elemento coleccion = flowLayoutPanelColecciones.Controls.OfType <ControlElemento.Elemento>().ElementAt(i);
                flowLayoutPanelColecciones.Controls.Remove(coleccion);
            }
        }
コード例 #4
0
        /// <summary>
        /// Muestra los datos del elemento seleccionado
        /// </summary>
        private void elementVerElemento_Click(Object sender, EventArgs e)
        {
            string buttonClicked;

            try
            {
                ControlElemento.Elemento elemento = sender as ControlElemento.Elemento;
                buttonClicked = elemento.Name;
            }
            catch (NullReferenceException)
            {
                Label label = sender as Label;
                buttonClicked = label.Text;
            }
            FormVerElemento form = new FormVerElemento(connection);

            connection.Open();

            command = new MySqlCommand("Select nombre, descripcion, imagen from elementos where nombre=@nombre and nombre_col = @nombre_col and nombre_user = @nombre_user", connection);
            command.Parameters.AddWithValue("@nombre", buttonClicked);
            command.Parameters.AddWithValue("@nombre_col", ColeccionActiva);
            command.Parameters.AddWithValue("@nombre_user", UsuarioActivo);
            reader = command.ExecuteReader();

            reader.Read();

            form.Text        = reader["nombre"].ToString();
            form.Descripcion = reader["descripcion"].ToString();
            try
            {
                form.ImgBytes = (byte[])reader["imagen"];
            }
            catch (InvalidCastException)
            {
                form.ImgBytes = null;
            }

            connection.Close();

            form.ShowDialog();

            if (form.DialogResult == DialogResult.No)
            {
                Button elementoBorrar = new Button();
                elementoBorrar.Name = buttonClicked;
                buttonBorrarElemento_Click(elementoBorrar, null);
            }
        }
コード例 #5
0
        /// <summary>
        /// Muestra los elementos de la colección seleccionada
        /// </summary>
        private void elementVerColeccion_Click(Object sender, EventArgs e)
        {
            flowLayoutPanelColecciones.Visible = false;

            try
            {
                ControlElemento.Elemento buttonClicked = sender as ControlElemento.Elemento;
                ColeccionActiva = buttonClicked.Name;
            }
            catch (NullReferenceException)
            {
                Label buttonClicked = sender as Label;
                ColeccionActiva = buttonClicked.Text;
            }

            mostrarElementos();
        }
コード例 #6
0
        /// <summary>
        /// Permite editar los datos de un elemento
        /// </summary>
        private void buttonEditar_Click(object sender, EventArgs e)
        {
            Button             buttonClicked = sender as Button;
            FormEditarElemento form          = new FormEditarElemento(connection);

            command = new MySqlCommand("Select nombre, descripcion, imagen from elementos where nombre=@nombre and nombre_col = @nombre_col and nombre_user = @nombre_user", connection);
            command.Parameters.AddWithValue("@nombre", buttonClicked.Name);
            command.Parameters.AddWithValue("@nombre_col", ColeccionActiva);
            command.Parameters.AddWithValue("@nombre_user", UsuarioActivo);

            connection.Open();

            reader = command.ExecuteReader();
            reader.Read();

            form.Nombre      = buttonClicked.Name;
            form.Descripcion = reader["descripcion"].ToString();

            if (reader["imagen"] != DBNull.Value)
            {
                form.ImgBytes = (byte[])reader["imagen"];
            }
            else
            {
                form.ImgBytes = null;
            }


            ControlElemento.Elemento elemento = (ControlElemento.Elemento)flowLayoutPanelElementos.Controls.Find(buttonClicked.Name, false).First();

            connection.Close();

            form.ShowDialog();

            if (form.DialogResult == DialogResult.OK && form.ImgBytes != null)
            {
                MemoryStream ms    = new MemoryStream(form.ImgBytes);
                Image        fondo = Image.FromStream(ms);

                elemento.BackgroundImage       = fondo;
                elemento.BackgroundImageLayout = ImageLayout.Zoom;
            }
        }
コード例 #7
0
        /// <summary>
        /// Añade una colección al panel
        /// </summary>
        /// <param name="nombre">Nombre de la colección</param>
        /// <param name="fav">0 si no es favorito o 1 si sí que lo es</param>
        private void anadirColeccion(string nombre, string fav)
        {
            ControlElemento.Elemento coleccion = new ControlElemento.Elemento();
            coleccion.Name = nombre;
            coleccion.setNombre(nombre);
            coleccion.Margin = new Padding(70, 10, 0, 60);
            coleccion.setOnClick(elementVerColeccion_Click);

            if (fav == "0")
            {
                coleccion.setFavorito(false);
            }
            else
            {
                coleccion.setFavorito(true);
            }

            coleccion.setButtonBorrarClick(buttonBorrarColeccion_Click);
            coleccion.setButtonFavoritosClick(buttonFavoritos_Click);

            flowLayoutPanelColecciones.Controls.Add(coleccion);
        }
コード例 #8
0
        /// <summary>
        /// Añade un elemento al panel
        /// </summary>
        /// <param name="nombre">Nombre del elemento</param>
        /// <param name="ImgBytes">Imagen del elemento</param>
        private void anadirElemento(string nombre, byte[] ImgBytes)
        {
            ControlElemento.Elemento elemento = new ControlElemento.Elemento();
            elemento.Name = nombre;
            elemento.setNombre(nombre);
            elemento.Margin = new Padding(70, 10, 0, 60);

            elemento.setOnClick(elementVerElemento_Click);
            elemento.ocultarFavoritos();
            elemento.setButtonBorrarClick(buttonBorrarElemento_Click);
            elemento.setButtonEditarClick(buttonEditar_Click);

            if (ImgBytes != null)
            {
                MemoryStream ms    = new MemoryStream(ImgBytes);
                Image        fondo = Image.FromStream(ms);

                elemento.BackgroundImage       = fondo;
                elemento.BackgroundImageLayout = ImageLayout.Zoom;
            }

            flowLayoutPanelElementos.Controls.Add(elemento);
        }