public void Guardar(Categoria categoria)
 {
     DbContext db = new DbContext();
     try
     {
         db.ContextOptions.ProxyCreationEnabled = _proxy;
         categoria.FechaActualizacion = DateTime.Now;
         if (categoria.IdCategoria <= 0)
         {
             categoria.FechaCreacion = DateTime.Now;
             db.Categoria.AddObject(categoria);
         }
         else
         {
             Categoria cat = db.Categoria.SingleOrDefault(s => s.IdCategoria == categoria.IdCategoria);
             if (cat != null)
             {
                 cat.Descripcion = categoria.Descripcion;
                 cat.Imagen = categoria.Imagen;
                 cat.IdNegocio = categoria.IdNegocio;
             }
         }
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.InnerException.Message);
     }
     finally
     {
         db.Dispose();
     }
 }
 private void LimpiarDatos(bool nuevo = false)
 {
     try
     {
         _categoria = null;
         txtNombre.Clear();
         txtLogo.Clear();
         pbLogoCategoria.Image = null;
         if (!nuevo)
             tbCategorias.SelectTab(0);
         else
             txtNombre.Focus();
         CargaNegocios();
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
 private void btnGuardar_Click(object sender, EventArgs e)
 {
     try
     {
         if (!ValidaCaptura()) return;
         if (_categoria == null)
             _categoria = new Categoria();
         _categoria.IdNegocio = (int)cmbNegocioRegistro.SelectedValue;
         _categoria.Descripcion = txtNombre.Text.Trim();
         _categoria.Imagen = Imagenes.ImagenToByte(pbLogoCategoria.Image);
         _nCategoria.Guardar(_categoria);
         LimpiarDatos();
         Mensajes.AlmacenExito(Text);
     }
     catch (Exception ex)
     {
         Mensajes.Error(ex.Message, Text);
     }
 }
        private void CargarCategoria(int idNegocio, int idCategoria)
        {
            try
            {
                _categoria = _lstNegocios.Where(n => n.IdNegocio == idNegocio).SelectMany(s => s.Categoria).SingleOrDefault(sd => sd.IdCategoria == idCategoria);
                if (_categoria == null) return;
                cmbNegocioRegistro.SelectedValue = _categoria.IdNegocio;
                txtNombre.Text = _categoria.Descripcion;
                pbLogoCategoria.Image = Imagenes.ByteToImagen(_categoria.Imagen);

                tbCategorias.SelectTab(1);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }