public JsonResult Register(models.user userx)
        {
            tiendaEntities db       = new tiendaEntities();
            EstatusLog     estatus  = new EstatusLog();
            var            findUser = db.users.FirstOrDefault(x => x.nombre.Equals(userx.nombre, StringComparison.OrdinalIgnoreCase));

            if (findUser == null)
            {
                users newUser = new users
                {
                    nombre = userx.nombre,
                    clave  = userx.clave,
                    correo = userx.email,
                    fecha  = DateTime.Now
                };

                db.users.Add(newUser);
                db.SaveChanges();
                estatus.success = true;
            }
            else
            {
                estatus.error    = true;
                estatus.errorMsg = "El usuario ya Existe...";
            }

            return(Json(estatus, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Login(models.user user)
        {
            /// Verificar logging
            tiendaEntities db      = new tiendaEntities();
            EstatusLog     estatus = new EstatusLog();

            var findUser = db.users.FirstOrDefault(x => x.nombre.Equals(user.nombre, StringComparison.OrdinalIgnoreCase));

            if (findUser != null)
            {
                if (user.clave.Equals(findUser.clave))
                {
                    FormsAuthentication.SetAuthCookie(findUser.id.ToString(), true);
                }
                else
                {
                    estatus.success  = false;
                    estatus.errorMsg = "Clave o Usuario Invalidos";
                }
            }
            else
            {
                estatus.success  = false;
                estatus.errorMsg = "Usuario no existe";
            }



            return(Json(estatus, JsonRequestBehavior.AllowGet));
        }
        public JsonResult AddItem(productos producto, int cantidad)
        {
            EstatusLog estatus = new EstatusLog();
            cart       carrito = new cart();

            if (logic.ActiveUser() == null)
            {
                estatus.success  = false;
                estatus.errorMsg = "NotUser";
                return(Json(estatus));
            }
            carrito.userid   = logic.ActiveUser().id;
            carrito.prodid   = producto.id;
            carrito.cantidad = cantidad;
            carrito.fecha    = DateTime.Now;
            try {
                db.cart.Add(carrito);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                estatus.success  = false;
                estatus.errorMsg = ex.Message;
            }
            return(Json(estatus));
        }
        public JsonResult Process()
        {
            EstatusLog estatus = new EstatusLog();

            try {
                var actualUser = logic.ActiveUser();

                var selectCart = db.cart.Where(x => x.userid == actualUser.id).ToList();

                pedidosex pedido = new pedidosex();
                pedido.fecha            = DateTime.Now;
                pedido.estatus          = 0;
                pedido.userid           = actualUser.id;
                pedido.total            = (decimal)(selectCart.Sum(x => x.cantidad * x.productos.precio));
                pedido.subtotal         = (decimal)(pedido.total);
                pedido.impuesto         = 0;
                pedido.montoEntrega     = 0;
                pedido.mododepago       = 0;
                pedido.direccionEntrega = actualUser.direccionEntrega;

                db.pedidosex.Add(pedido);

                db.SaveChanges();

                var detallePedido = selectCart.Select(x => new pedidos
                {
                    userid   = actualUser.id,
                    prodid   = x.prodid,
                    cantidad = x.cantidad,
                    pedidoid = pedido.id,
                    subtotal = (decimal)(x.cantidad * x.productos.precio)
                });
                db.pedidos.AddRange(detallePedido);
                try {
                    SendMail(pedido);
                }
                catch
                {
                }


                db.cart.RemoveRange(db.cart.Where(x => x.userid == actualUser.id));
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                estatus.success  = false;
                estatus.errorMsg = "Error al Crear el pedido";
            }
            return(Json(estatus));
        }
        public JsonResult Edit(users usuario)
        {
            EstatusLog     estatus = new EstatusLog();
            tiendaEntities db      = new tiendaEntities();

            try {
                db.users.Attach(usuario);
                db.Entry(usuario).State = EntityState.Modified;
                db.SaveChanges();
            }catch (Exception ex)
            {
                return(Json(estatus.success = false));
            }


            return(Json(estatus));
        }
        public JsonResult DeleteItem(int id)
        {
            EstatusLog estatus = new EstatusLog();

            try {
                cart carrito = new cart {
                    id = id
                };
                db.Entry(carrito).State = EntityState.Deleted;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                estatus.success  = false;
                estatus.errorMsg = "Error al eliminar el item del Carrito";
            }

            return(Json(estatus));
        }
        public ActionResult SendContact(models.Contact contact)
        {
            EstatusLog estatus = new EstatusLog();

            try
            {
                var          fromAddress  = new MailAddress("*****@*****.**", contact.nombre + " " + contact.email);
                var          toAddress    = new MailAddress("*****@*****.**", "barraleather");
                const string fromPassword = "******";
                string       subject      = "Mensaje de: " + contact.nombre;
                string       body         = contact.msg;

                var smtp = new SmtpClient
                { //port 587
                    Host                  = "smtpout.secureserver.net",
                    Port                  = 25,
                    EnableSsl             = false,
                    DeliveryMethod        = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials           = new NetworkCredential(fromAddress.Address, fromPassword),
                };
                using (var message = new MailMessage(fromAddress, toAddress)
                {
                    Subject = subject,
                    Body = body
                })
                {
                    smtp.Send(message);
                }
                estatus.success = true;
                ViewBag.message = "Se ha enviado el mensaje";
            }
            catch (Exception)
            {
                estatus.error   = true;
                ViewBag.message = "Ocurrio un error al enviar el mensaje, intente mas tarde";
            }


            return(View());
        }