/// <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(); }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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(); }
/// <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; } }
/// <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); }
/// <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); }