private void saveProduct()
        {
            try
            {
                TBL_PRODUCTO _infoProducto = new TBL_PRODUCTO();
                //_infoProducto.pro_id = 100;
                _infoProducto.cat_id          = Convert.ToInt16(UC_Categoria1.DropDownList.SelectedValue);
                _infoProducto.pro_codigo      = txtCodigo.Text;
                _infoProducto.pro_nombre      = txtNombre.Text;
                _infoProducto.pro_descripcion = txtDescripcion.Text;

                //imagen

                if (FileUploadProducto.HasFile)
                {
                    if (!string.IsNullOrEmpty(txtCodigo.Text))
                    {
                        try
                        {
                            if (FileUploadProducto.PostedFile.ContentType == "image/png" || FileUploadProducto.PostedFile.ContentType == "image/jpeg")
                            {
                                if (FileUploadProducto.PostedFile.ContentLength < 100000)
                                {
                                    string nombreArchivo = txtCodigo.Text + ".jpg";
                                    FileUploadProducto.SaveAs(Server.MapPath("~/images/products/") + nombreArchivo);
                                }
                                else
                                {
                                    lblMensaje.Text = "El tamaño máximo de la imagen es de 100 kb";
                                }
                            }
                            else
                            {
                                lblMensaje.Text = "Solo se aceptan imagen de tipo Png y Jpeg";
                            }
                        }
                        catch (Exception)
                        {
                            lblMensaje.Text = "Error al cargar la imagen de producto. ";
                        }
                    }
                    else
                    {
                        lblMensaje.Text = "El campo codigo de producto es obligatorio para la carga de imagen";
                    }
                }


                _infoProducto.pro_imagen = "~/images/products/" + txtCodigo.Text + ".jpg";


                _infoProducto.pro_preciocompra = Convert.ToDecimal(txtPrecioCompra.Text);
                _infoProducto.pro_precioventa  = Convert.ToDecimal(txtPrecioVenta.Text);
                _infoProducto.pro_stockminimo  = Convert.ToInt32(txtStockMinimo.Text);
                _infoProducto.pro_stockmaximo  = Convert.ToInt32(txtStockMaximo.Text);
                Task <bool> _taskSaveProduct = Task.Run(() => LogicaProducto.saveProduct(_infoProducto));
                _taskSaveProduct.Wait();
                var resultado = _taskSaveProduct.Result;
                if (resultado)
                {
                    lblMensaje.Text = "Registro Guardado Correctamente";
                    newProduct();
                }
            }
            catch (Exception ex)
            {
                lblMensaje.Text = ex.Message;
            }
        }
        private void saveProduct()
        {
            try
            {
                TBL_PRODUCTO _infoProducto = new TBL_PRODUCTO();
                //_infoProducto.PRO_ID = 100;
                _infoProducto.CAT_ID          = Convert.ToInt16(UC_Categoria1.DropDownList.SelectedValue);
                _infoProducto.PRO_CODIGO      = txtCodigo.Text;
                _infoProducto.PRO_NOMBRE      = txtNombre.Text;
                _infoProducto.PRO_DESCRIPCION = txtDescripcion.Text;

                //imagen
                if (FileUploadProducto.HasFile)
                {
                    if (!string.IsNullOrEmpty(txtCodigo.Text))
                    {
                        try
                        {
                            if (FileUploadProducto.PostedFile.ContentType == "image/png" || FileUploadProducto.PostedFile.ContentType == "image/jpeg")
                            {
                                if (FileUploadProducto.PostedFile.ContentLength < 512000)
                                {
                                    string nombreArchivo = txtCodigo.Text + ".jpg";
                                    //guardar archivo
                                    //~ = raiz proyecto
                                    FileUploadProducto.SaveAs(Server.MapPath("~/images/products/") + nombreArchivo);
                                }
                                else
                                {
                                    LblMensaje.Text = "El tamaño máximo de la imagen debe ser 512 KB";
                                }
                            }
                            else
                            {
                                LblMensaje.Text = "Admitido solo jpg o png";
                            }
                        }
                        catch (Exception)
                        {
                            LblMensaje.Text = "Error al cargar imagen de producto";
                        }
                    }
                    else
                    {
                        LblMensaje.Text = "El campo codigo de producto es oblgatorio para la carga de imagen";
                    }
                }

                _infoProducto.PRO_IMAGEN = "~/images/products/" + txtCodigo.Text + ".jpg";

                _infoProducto.PRO_PRECIOCOMPRA = Convert.ToDecimal(txtPrecioCompra.Text);
                _infoProducto.PRO_PRECIOVENTA  = Convert.ToDecimal(txtPrecioVenta.Text);
                _infoProducto.PRO_STOCKMINIMO  = Convert.ToInt32(txtStockMinimo.Text);
                _infoProducto.PRO_STOCKMAXIMO  = Convert.ToInt32(txtStockMaximo.Text);

                Task <bool> _taskSaveProduct = Task.Run(() => LogicaProducto.saveProduct(_infoProducto));
                _taskSaveProduct.Wait();
                var resultado = _taskSaveProduct.Result;

                if (resultado)
                {
                    LblMensaje.Text = "Registro Guardado Correctamente";
                    newProduct();
                }
            }
            catch (Exception ex)
            {
                LblMensaje.Text = ex.Message;
            }
        }