private void btnModificar_Click(object sender, RoutedEventArgs e) { if (dgArtesanias.SelectedItem != null) { Artesania a = (Artesania)dgArtesanias.SelectedItem; a.Descripcion = txtDescripcion.Text; a.Material = (Material)cboMaterialPrincipal.SelectedItem; if (rdbNacional.IsChecked == true) { a.Procedencia = rdbNacional.Content.ToString(); } else { a.Procedencia = rdbImportado.Content.ToString(); } a.PathImagen = imgPhoto.Source.ToString(); //Le ponemos una banderita de que se modicaron datos en la entidad.. datos.Entry(a).State = System.Data.Entity.EntityState.Modified; datos.SaveChanges(); //Eliminamos las categorias que tenga asociada actualmente..y todas las que seleccione (van a asociarse nuevamente) var arteCategorias = a.Artesania_Categoria; if (arteCategorias.Count > 0) { datos.Artesania_Categoria.RemoveRange(arteCategorias); datos.SaveChanges(); } //Finalmente, actualizamos las categorias asociadas foreach (var chk in chksCategorias.Children.OfType <CheckBox>()) { //Obtenemos la categoria de acuerdo al id, guardado en el tag: if (chk.IsChecked == true) { int idCategoria = int.Parse(chk.Tag.ToString()); Categoria c = datos.Categoria.Find(idCategoria); Artesania_Categoria ac = new Artesania_Categoria(); ac.Artesania = a; ac.Categoria = c; datos.Artesania_Categoria.Add(ac); datos.SaveChanges(); } } CargarDatosGrilla(); } else { MessageBox.Show("Debe seleccionar una Artesania de la grilla para modificar!"); } }
private void btnGuardar_Click(object sender, RoutedEventArgs e) { //Validaciones de ingreso de datos! //Try Catch! //Crear un objeto de Tipo Artesania, agregarlo al modelo... Y el insert into..? Artesania arte = new Artesania(); //arte.Id_Artesania = ? Es autogenerado! ish! arte.Descripcion = txtDescripcion.Text; arte.Material = (Material)cboMaterialPrincipal.SelectedItem; if (rdbNacional.IsChecked == true) { arte.Procedencia = rdbNacional.Content.ToString(); } else { arte.Procedencia = rdbImportado.Content.ToString(); } arte.PathImagen = imgPhoto.Source.ToString(); //Guardamos la artesania datos.Artesania.Add(arte); datos.SaveChanges(); //Como Artesania/Categoria se guarda en una tabla aparte (correlación), entonces a continuación hacemos eso... //Que categorias checkeó? foreach (var chk in chksCategorias.Children.OfType <CheckBox>()) { //Obtenemos la categoria de acuerdo al id, guardado en el tag: if (chk.IsChecked == true) { int idCategoria = int.Parse(chk.Tag.ToString()); Categoria c = datos.Categoria.Find(idCategoria); Artesania_Categoria ac = new Artesania_Categoria(); ac.Artesania = arte; ac.Categoria = c; datos.Artesania_Categoria.Add(ac); datos.SaveChanges(); } } CargarDatosGrilla(); }
private void dgArtesanias_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (dgArtesanias.SelectedItem != null) { Artesania a = (Artesania)dgArtesanias.SelectedItem; txtId.Text = a.Id_Artesania.ToString(); txtDescripcion.Text = a.Descripcion; cboMaterialPrincipal.SelectedItem = a.Material; foreach (var chk in chksCategorias.Children.OfType <CheckBox>()) { chk.IsChecked = false; } if (a.Procedencia.Equals("Nacional")) { rdbNacional.IsChecked = true; } else { rdbImportado.IsChecked = true; } //Cargamos la imagen String stringPath = a.PathImagen; Uri imageUri = new Uri(stringPath); BitmapImage imageBitmap = new BitmapImage(imageUri); imgPhoto.Source = imageBitmap; //Vemos si tiene categorias asociadas... var artesaniasCategorias = a.Artesania_Categoria; if (artesaniasCategorias.Count > 0) { foreach (var ac in artesaniasCategorias) { foreach (var chk in chksCategorias.Children.OfType <CheckBox>()) { if (chk.Content.Equals(ac.Categoria.Nombre)) { chk.IsChecked = true; } } } } } }
private void btnEliminar_Click(object sender, RoutedEventArgs e) { if (dgArtesanias.SelectedItem != null) { Artesania a = (Artesania)dgArtesanias.SelectedItem; //Eliminamos las categorias que tenga asociada actualmente..y todas las que seleccione (van a asociarse nuevamente) var arteCategorias = a.Artesania_Categoria; if (arteCategorias.Count > 0) { datos.Artesania_Categoria.RemoveRange(arteCategorias); datos.SaveChanges(); } datos.Artesania.Remove(a); datos.SaveChanges(); CargarDatosGrilla(); } else { MessageBox.Show("Debe seleccionar una Artesania de la grilla para eliminar!"); } }