public Boolean Delete(EntidadNegocio.Entidades.Producto _producto) { Int32 id = _producto.ID; Boolean resul = false; Producto productoToDelete = db.ProductoSet.First(b => b.ID == id); String IDTipo = ""; String IDMarca = ""; String IDModelo = ""; String IDCategoria = ""; productoToDelete.ID = _producto.ID; productoToDelete.Codigo = _producto.Codigo; productoToDelete.Descripcion = _producto.Descripcion; if (_producto.Status == EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo) { productoToDelete.Estatus = 1; } else { productoToDelete.Estatus = 0; } Int32 iIDTipo = _producto.IDTipo; if (iIDTipo == 0) { TipoController ctrlTipo = new TipoController(); iIDTipo = ctrlTipo.UltimoID(); } else { iIDTipo = _producto.IDTipo; } productoToDelete.IDTipo = iIDTipo; IDTipo = iIDTipo.ToString(); Int32 iIDMarca = _producto.IDMarca; productoToDelete.IDMarca = iIDMarca; IDMarca = iIDMarca.ToString(); Int32 iIDModelo = _producto.IDModelo; productoToDelete.IDModelo = iIDModelo; IDModelo = iIDModelo.ToString(); Int32 iIDCategoria = _producto.IDCategoria; productoToDelete.IDCategoria = iIDCategoria; IDCategoria = iIDCategoria.ToString(); //valido si la Producto tiene alquiler if (db.AlquilerSet.FirstOrDefault(a => a.IDProducto == id) != null) { MessageBox.Show(String.Format("Esta intentando Borrar una Producto que tiene alquiler."), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { try { if (db.Connection.State != System.Data.ConnectionState.Open) { db.Connection.Open(); } DbTransaction dbTransaction = db.Connection.BeginTransaction(); // Delete db.DeleteObject(productoToDelete); db.SaveChanges(); dbTransaction.Commit(); // Si la transaccion es exitosa enviamos true resul = true; } catch (Exception ex) { HandleException excepcion = new HandleException(); String msjLog = "Error en " + ObtenerMetodoEnEjecucion(false).ToString() + ".\n" + excepcion.RegistrarExcepcion(ex, ObtenerMetodoEnEjecucion(false).ToString()); excepcion.EscribirLogExcepcion(msjLog); String clientMessage = excepcion.HandleExceptionEx(ex); excepcion = null; resul = false; } } return(resul); }
public Boolean Edit(EntidadNegocio.Entidades.Producto _producto) { Int32 id = _producto.ID; Boolean resul = false; Producto productoToUpdate = db.ProductoSet.First(b => b.ID == id); String IDTipo = ""; String IDMarca = ""; String IDModelo = ""; String IDCategoria = ""; productoToUpdate.ID = _producto.ID; productoToUpdate.Codigo = _producto.Codigo; productoToUpdate.Descripcion = _producto.Descripcion; if (_producto.Status == EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo) { productoToUpdate.Estatus = 1; } else { productoToUpdate.Estatus = 0; } Int32 iIDTipo = _producto.IDTipo; if (iIDTipo == 0) { TipoController ctrlTipo = new TipoController(); iIDTipo = ctrlTipo.UltimoID(); } else { iIDTipo = _producto.IDTipo; } productoToUpdate.IDTipo = iIDTipo; IDTipo = iIDTipo.ToString(); Int32 iIDMarca = _producto.IDMarca; productoToUpdate.IDMarca = iIDMarca; IDMarca = iIDMarca.ToString(); Int32 iIDModelo = _producto.IDModelo; productoToUpdate.IDModelo = iIDModelo; IDModelo = iIDModelo.ToString(); Int32 iIDCategoria = _producto.IDCategoria; productoToUpdate.IDCategoria = iIDCategoria; IDCategoria = iIDCategoria.ToString(); if (!String.IsNullOrEmpty(IDTipo)) { productoToUpdate.Tipo = db.TipoSet.FirstOrDefault(c => c.ID == iIDTipo); } if (productoToUpdate.Tipo == null) { MessageBox.Show(String.Format("El número de IDTipo {0} no está registrado en la base de datos."), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (!String.IsNullOrEmpty(IDMarca)) { productoToUpdate.Marca = db.MarcaSet.FirstOrDefault(c => c.ID == iIDMarca); } if (productoToUpdate.Marca == null) { MessageBox.Show(String.Format("El número de IDMarca {0} no está registrado en la base de datos."), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (!String.IsNullOrEmpty(IDModelo)) { productoToUpdate.Modelo = db.ModeloSet.FirstOrDefault(c => c.ID == iIDModelo); } if (productoToUpdate.Modelo == null) { MessageBox.Show(String.Format("El número de IDModelo {0} no está registrado en la base de datos."), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (!String.IsNullOrEmpty(IDCategoria)) { productoToUpdate.Categoria = db.CategoriaSet.FirstOrDefault(c => c.ID == iIDCategoria); } if (productoToUpdate.Categoria == null) { MessageBox.Show(String.Format("El número de IDCategoria {0} no está registrado en la base de datos."), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (db.Connection.State == System.Data.ConnectionState.Closed) { db.Connection.Open(); } DbTransaction dbTransaction = db.Connection.BeginTransaction(); try { // Guardar y confirmar. db.SaveChanges(); dbTransaction.Commit(); // Si la transaccion es exitosa enviamos true resul = true; } catch (Exception ex) { dbTransaction.Rollback(); HandleException excepcion = new HandleException(); String msjLog = "Error en " + ObtenerMetodoEnEjecucion(false).ToString() + ".\n" + excepcion.RegistrarExcepcion(ex, ObtenerMetodoEnEjecucion(false).ToString()); excepcion.EscribirLogExcepcion(msjLog); String clientMessage = excepcion.HandleExceptionEx(ex); excepcion = null; resul = false; } return(resul); }