private void DgdbusquedaProducto_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dgdbusquedaProducto.Items.Count > 0 && dgdbusquedaProducto.SelectedItem != null)
            {
                //Realizamos Get
                try
                {
                    DataRowView dataRow = (DataRowView)dgdbusquedaProducto.SelectedItem;
                    int         id      = int.Parse(dataRow.Row.ItemArray[2].ToString());
                    int         idpro   = int.Parse(dataRow.Row.ItemArray[0].ToString());
                    brlart   = new ArticuloBRL();
                    brl      = new ItemBRL();
                    item     = brl.Get(id);
                    articulo = brlart.Get(idpro);

                    //Cargar Datos

                    txtidItem.Text            = Convert.ToInt32(id).ToString();
                    txtnombreitemBuscado.Text = articulo.NombreArticulo;
                    item        = new Item();
                    item.IdItem = int.Parse(txtidItem.Text.ToString());
                    brl         = new ItemBRL(item);
                    brl.UpdateEstadoParaComprar();
                    LoadDataGridItemsComprar();
                    txtnombreitemBuscado.Text = "";
                    LoadCantidadVenta();
                    LoadTotalVenta();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ocurrio un error comuniquese con el administrador de sistemas");
                }
            }
        }
        private void LoadDataGrid()
        {
            try
            {
                brl = new ArticuloBRL();
                dgdDatos.ItemsSource           = brl.Select().DefaultView;
                dgdDatos.ItemsSource           = brl.SelectBusquedaArticulos(txtBuscarArticulo.Text).DefaultView;
                dgdDatos.Columns[0].Visibility = Visibility.Hidden;
                dgdDatos.Columns[3].Visibility = Visibility.Hidden;

                catBRL = new CategoriaBRL();
                cbxCategoria.DisplayMemberPath = "nombreCategoria";
                cbxCategoria.SelectedValuePath = "idCategoria";
                cbxCategoria.ItemsSource       = catBRL.SelectCategorias().DefaultView;
                cbxCategoria.SelectedIndex     = 0;

                provBRL = new ProvedorBRL();
                cbxProvedor.DisplayMemberPath = "razonSocialProvedor";
                cbxProvedor.SelectedValuePath = "idProvedor";
                cbxProvedor.ItemsSource       = provBRL.SelectProvedores().DefaultView;
                cbxProvedor.SelectedIndex     = 0;
            }
            catch (Exception)
            {
                MessageBox.Show("Ocurrio un error al cargar los datos intente salir y volver a entrar si el error persiste comuniquese con el administrador de sistemas");
            }
        }
        private void DgdDatos_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dgdDatos.Items.Count > 0 && dgdDatos.SelectedItem != null)
            {
                //Realizamos Get
                try
                {
                    DataRowView dataRow = (DataRowView)dgdDatos.SelectedItem;
                    int         id      = int.Parse(dataRow.Row.ItemArray[0].ToString());
                    brl      = new ArticuloBRL();
                    articulo = brl.Get(id);

                    //Cargar Datos
                    if (articulo != null)
                    {
                        txtnombreArticulo.Text     = articulo.NombreArticulo;
                        cbxCategoria.SelectedValue = byte.Parse(articulo.IdCategoria.ToString());
                        cbxProvedor.SelectedValue  = int.Parse(articulo.IdProvedor.ToString());
                        try
                        {
                            if (int.Parse(dataRow.Row.ItemArray[3].ToString()) == 1)
                            {
                                imgArticulo.Source    = new BitmapImage(new Uri(Config.configpathImagenArticulo + id + ".jpg"));
                                pathImagen            = Config.configpathImagenArticulo + id + ".jpg";
                                pathFotoCarteroServer = pathImagen;
                            }
                            else
                            {
                                imgArticulo.Source    = new BitmapImage(new Uri(Config.configpathImagenArticulo + "0.jpg"));
                                pathImagen            = Config.configpathImagenArticulo + id + "0.jpg";
                                pathFotoCarteroServer = pathImagen;
                            }
                        }
                        catch (Exception)
                        {
                            pathImagen = string.Empty;
                            MessageBox.Show("No se pudo cargar la imagen intente de nuevo si el error persiste comuniquese con el administrador de sistemas");
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        /// <summary>
        /// Evento selection changed para busqueda de articulos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Dgdbusqueda_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dgdbusqueda.Items.Count > 0 && dgdbusqueda.SelectedItem != null)
            {
                //Realizamos Get
                try
                {
                    DataRowView dataRow = (DataRowView)dgdbusqueda.SelectedItem;
                    int         id      = int.Parse(dataRow.Row.ItemArray[0].ToString());
                    brlart   = new ArticuloBRL();
                    articulo = brlart.Get(id);

                    //Cargar Datos

                    txtidProductoBuscado.Text     = Convert.ToInt32(id).ToString();
                    txtnombreproductobuscado.Text = articulo.NombreArticulo;
                    AgregarItem agregarItem = new AgregarItem();
                    if (txtnombreproductobuscado.Text == "" && txtidProductoBuscado.Text == "")
                    {
                        MessageBox.Show("Busque un producto para agregar item");
                    }
                    else
                    {
                        agregarItem.txtnombreproductoinsert.Text = txtnombreproductobuscado.Text;
                        agregarItem.txtIdProductoInsertar.Text   = txtidProductoBuscado.Text;
                        agregarItem.ShowDialog();
                        txtnombreproductobuscado.Text = "";
                        this.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ocurrio un error comuniquese con el administrador de sistemas");
                }
            }
        }
 private void BtnEliminar_Click(object sender, RoutedEventArgs e)
 {
     if (txtnombreArticulo.Text != "")
     {
         brl = new ArticuloBRL();
         DataTable dt = brl.VerificarArticuloEliminar(articulo.IdArticulo);
         if (dt.Rows.Count == 0)
         {
             if (MessageBox.Show("Esta Seguro de Eliminar el Registro?", "Eliminar", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
             {
                 //Eliminacion Logica
                 try
                 {
                     dgdDatos.IsEnabled = true;
                     brl = new ArticuloBRL(articulo);
                     brl.Delete();
                     MessageBox.Show("Eliminado Exitosamente");
                     LoadDataGrid();
                     LimpiarCampos();
                 }
                 catch (Exception ex)
                 {
                     MessageBox.Show("Ocurrio un error comuniquese con el administrador de sistemas");
                 }
             }
         }
         else
         {
             MessageBox.Show("No puede eliminar el Articulo por que tiene Items asociados a la misma");
         }
     }
     else
     {
         MessageBox.Show("Seleccione un registro de la lista para eliminarlo");
     }
 }
        private void BtnGuardarAccion_Click(object sender, RoutedEventArgs e)
        {
            switch (operacion)
            {
            case 1:
                //Insertar

                if (txtnombreArticulo.Text == "" && txtnombreArticulo.Text.Length < 3)
                {
                    MessageBox.Show("Complete correctamente el formulario");
                }
                else
                {
                    dgdDatos.IsEnabled     = false;
                    txtnombreArticulo.Text = txtnombreArticulo.Text.Trim();
                    brl = new ArticuloBRL();
                    DataTable dt = brl.VerificarArticulo(txtnombreArticulo.Text);
                    if (dt.Rows.Count == 0)
                    {
                        try
                        {
                            //Insertar
                            //CAPTURAMOS EL NOMBRE DE LA IMAGEN A TRAVEZ DEL ID
                            if (imgArticulo.Source != null)
                            {
                                DateTime fecha = DateTime.Now;
                                articulo = new Articulo(txtnombreArticulo.Text, byte.Parse(cbxCategoria.SelectedValue.ToString()), int.Parse(cbxProvedor.SelectedValue.ToString()), fecha, 1);
                                brl      = new ArticuloBRL(articulo);
                                brl.Insert();

                                int id = MethodsBRL.GetMaxIDTable("idArticulo", "Articulo");

                                File.Copy(pathImagen, Config.configpathImagenArticulo + id + ".jpg");


                                MessageBox.Show("Registro Exitoso");

                                LoadDataGrid();
                                dgdDatos.IsEnabled = true;
                                DesHabilitar();
                            }
                            else
                            {
                                MessageBox.Show("Elija una imagen por favor");
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Error al agregar Articulo comuniquese con el administrador de sistemas ");
                        }
                    }
                    else
                    {
                        MessageBox.Show("El Articulo ya existe");
                    }
                }
                break;

            case 2:
                //Modificar
                if (txtnombreArticulo.Text == "" && imgArticulo.Source == null && articulo == null)
                {
                    MessageBox.Show("Seleccione un registro de la lista para modificarlo");
                }
                else
                {
                    try
                    {
                        //Modificar
                        //categoria = new Categoria(txtnombreCategoria.Text);
                        string nombreArticulo = articulo.NombreArticulo;
                        string nombreCambiado = txtnombreArticulo.Text.Trim();
                        dgdDatos.IsEnabled = true;
                        DataTable dt = brl.VerificarArticulo(txtnombreArticulo.Text);
                        if (dt.Rows.Count > 0)
                        {
                            //Cambiamos imagen
                            if (pathImagen != pathFotoCarteroServer)
                            {
                                articulo.NombreArticulo = nombreArticulo;
                                brl = new ArticuloBRL(articulo);
                                brl.Update();
                                MessageBox.Show("El Articulo ya existe solo se modifico la imagen");
                                imgArticulo.Source = null;
                                LoadDataGrid();
                                DesHabilitar();
                                LimpiarCampos();
                                System.GC.Collect();
                                System.GC.WaitForPendingFinalizers();
                                File.Delete(pathFotoCarteroServer);
                                File.Copy(pathImagen, Config.configpathImagenArticulo + articulo.IdArticulo + ".jpg");
                            }
                            else
                            {
                                MessageBox.Show("El articulo ya existe no se modifico ningun cambio");
                                LoadDataGrid();
                                DesHabilitar();
                                LimpiarCampos();
                                imgArticulo.Source = null;
                            }
                        }
                        else
                        {
                            articulo.NombreArticulo = nombreCambiado;
                            brl = new ArticuloBRL(articulo);
                            brl.Update();
                            MessageBox.Show("Articulo Modificado Exitosamente");
                            //Cambiamos imagen
                            if (pathImagen != pathFotoCarteroServer)
                            {
                                LoadDataGrid();
                                DesHabilitar();
                                LimpiarCampos();
                                imgArticulo.Source = null;
                                System.GC.Collect();
                                System.GC.WaitForPendingFinalizers();
                                File.Delete(pathFotoCarteroServer);
                                File.Copy(pathImagen, Config.configpathImagenArticulo + articulo.IdArticulo + ".jpg");
                            }
                            else
                            {
                                LoadDataGrid();
                                DesHabilitar();
                                LimpiarCampos();
                                imgArticulo.Source = null;
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Ocurrio un error al modificar el Articulo intente nuevamente si el error persiste comuniquese con el administrador de sistemas");
                    }
                }
                break;
            }
        }