// GET: Admin/AdminProductoCC
 public ActionResult Index()
 {
     try
     {
         var productoccP = new ProductoCCProcess();
         var lista       = productoccP.Listar();
         return(View(lista));
     }
     catch (Exception ex)
     {
         Bitacora        bitacora  = new Bitacora("Listar Tabla ProductoCC", ex.Message.ToString(), User.Identity.Name, DateTime.Now);
         BitacoraProcess bitacorap = new BitacoraProcess();
         bitacorap.Create(bitacora);
         return(View());
     }
 }
        public ActionResult Delete(Producto producto1)
        {
            try
            {
                var biz      = new ProductoProcess();
                var producto = biz.GetByID(producto1.Id);

                if (producto.Estado == "Disponible")
                {
                    producto.Estado = "No Disponible";
                }
                else
                {
                    producto.Estado = "Disponible";
                }
                producto.DVH = Decopack.Servicios.Seguridad.GenerarSHA(string.Format("{0}{1}{2}{3}", producto.Nombre, producto.Precio, producto.Estado, producto.Descripcion));
                bool result = biz.Edit(producto);

                var ProductoCCP = new ProductoCCProcess();
                var productoCC  = new ProductoCC();
                productoCC.Descripcion = producto.Descripcion;
                productoCC.Nombre      = producto.Nombre;
                productoCC.Fecha       = DateTime.Now;
                productoCC.Tipo        = "Baja";
                productoCC.Usuario     = User.Identity.Name;
                ProductoCCP.Crear(productoCC);

                var productoDVVP = new ProductoDVVProcess();
                var productoDVV  = new ProductoDVV();



                foreach (var item in biz.ListarAPI())
                {
                    cadena = string.Format(cadena + "{0}", item.DVH);
                }

                productoDVV.DVV = Decopack.Servicios.Seguridad.GenerarSHA(cadena);

                foreach (var item in productoDVVP.Listar())
                {
                    if (item.Entidad == "Producto")
                    {
                        productoDVV.Id      = item.Id;
                        productoDVV.Entidad = item.Entidad;
                        productoDVVP.Editar(productoDVV);
                    }
                    else
                    {
                        productoDVVP.Crear(productoDVV);
                    }
                }

                Bitacora        bitacora  = new Bitacora("Eliminar", "Tabla Producto", User.Identity.Name, DateTime.Now);
                BitacoraProcess bitacorap = new BitacoraProcess();
                bitacorap.Create(bitacora);

                if (result)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View());
                }
            }
            catch (Exception a)
            {
                Bitacora        bitacora  = new Bitacora("Eliminar Tabla Producto", a.Message.ToString(), User.Identity.Name, DateTime.Now);
                BitacoraProcess bitacorap = new BitacoraProcess();
                bitacorap.Create(bitacora);
                return(View());
            }
        }
        public ActionResult Edit(Producto producto1, HttpPostedFileBase imagendelproducto)
        {
            try
            {
                var biz      = new ProductoProcess();
                var producto = biz.GetByID(producto1.Id);
                if (imagendelproducto != null && imagendelproducto.ContentLength > 0)
                {
                    byte[] imagendata = null;
                    using (var binarypaciente = new BinaryReader(imagendelproducto.InputStream))
                    {
                        imagendata = binarypaciente.ReadBytes(imagendelproducto.ContentLength);
                    }
                    producto.ImagenProducto = imagendata;
                }

                if (producto.Precio > producto1.Precio)
                {
                    ViewBag.advertencia = true;
                    return(View(producto1));
                }
                else
                {
                    ViewBag.advertencia = false;
                }
                producto.Nombre      = producto1.Nombre;
                producto.Precio      = producto1.Precio;
                producto.Descripcion = producto1.Descripcion;
                producto.DVH         = Decopack.Servicios.Seguridad.GenerarSHA(string.Format("{0}{1}{2}{3}", producto.Nombre, producto.Precio, producto.Estado, producto.Descripcion));
                if (producto.Precio == 0)
                {
                    throw new Exception();
                }


                bool result = biz.Edit(producto);

                var ProductoCCP = new ProductoCCProcess();
                var productoCC  = new ProductoCC();
                productoCC.Descripcion = producto.Descripcion;
                productoCC.Nombre      = producto.Nombre;
                productoCC.Fecha       = DateTime.Now;
                productoCC.Tipo        = "Editar";
                productoCC.Usuario     = User.Identity.Name;
                ProductoCCP.Crear(productoCC);

                var productoDVVP = new ProductoDVVProcess();
                var productoDVV  = new ProductoDVV();



                foreach (var item in biz.ListarAPI())
                {
                    cadena = string.Format(cadena + "{0}", item.DVH);
                }

                productoDVV.DVV = Decopack.Servicios.Seguridad.GenerarSHA(cadena);

                foreach (var item in productoDVVP.Listar())
                {
                    if (item.Entidad == "Producto")
                    {
                        productoDVV.Id      = item.Id;
                        productoDVV.Entidad = item.Entidad;
                        productoDVVP.Editar(productoDVV);
                    }
                    else
                    {
                        productoDVVP.Crear(productoDVV);
                    }
                }

                Bitacora        bitacora  = new Bitacora("Editar", "Tabla Producto", User.Identity.Name, DateTime.Now);
                BitacoraProcess bitacorap = new BitacoraProcess();
                bitacorap.Create(bitacora);

                if (result)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View());
                }
            }
            catch (Exception a)
            {
                Bitacora        bitacora  = new Bitacora("Editar Tabla Producto", a.Message.ToString(), User.Identity.Name, DateTime.Now);
                BitacoraProcess bitacorap = new BitacoraProcess();
                bitacorap.Create(bitacora);
                return(View());
            }
        }
        public ActionResult Create(Producto producto, HttpPostedFileBase imagendelproducto)
        {
            try
            {
                if (imagendelproducto != null && imagendelproducto.ContentLength > 0)
                {
                    HttpPostedFileBase fileBase = Request.Files[0];
                    WebImage           image    = new WebImage(fileBase.InputStream);

                    producto.ImagenProducto = image.GetBytes();
                }

                producto.Estado = "No Disponible";
                producto.Precio = 0;
                producto.DVH    = Decopack.Servicios.Seguridad.GenerarSHA(string.Format("{0}{1}{2}{3}", producto.Nombre, producto.Precio, producto.Estado, producto.Descripcion));

                var biz = new ProductoProcess();

                var model = biz.AgregarAPI(producto);


                var ProductoCCP = new ProductoCCProcess();
                var productoCC  = new ProductoCC();
                productoCC.Descripcion = producto.Descripcion;
                productoCC.Nombre      = producto.Nombre;
                productoCC.Fecha       = DateTime.Now;
                productoCC.Tipo        = "Alta";
                productoCC.Usuario     = User.Identity.Name;
                ProductoCCP.Crear(productoCC);

                var productoDVVP = new ProductoDVVProcess();
                var productoDVV  = new ProductoDVV();



                foreach (var item in biz.ListarAPI())
                {
                    cadena = string.Format(cadena + "{0}", item.DVH);
                }

                productoDVV.DVV = Decopack.Servicios.Seguridad.GenerarSHA(cadena);

                foreach (var item in productoDVVP.Listar())
                {
                    if (item.Entidad == "Producto")
                    {
                        productoDVV.Id      = item.Id;
                        productoDVV.Entidad = item.Entidad;
                        productoDVVP.Editar(productoDVV);
                    }
                    else
                    {
                        productoDVVP.Crear(productoDVV);
                    }
                }
                if (productoDVVP.Listar().Count == 0)
                {
                    productoDVV.Entidad = "Producto";
                    productoDVVP.Crear(productoDVV);
                }


                Bitacora        bitacora  = new Bitacora("Crear", "Tabla Producto", User.Identity.Name, DateTime.Now);
                BitacoraProcess bitacorap = new BitacoraProcess();
                bitacorap.Create(bitacora);



                return(RedirectToAction("Index"));
            }
            catch (Exception a)
            {
                Bitacora        bitacora  = new Bitacora("Crear Tabla Producto", a.Message.ToString(), User.Identity.Name, DateTime.Now);
                BitacoraProcess bitacorap = new BitacoraProcess();
                bitacorap.Create(bitacora);
                return(View());
            }
        }