Пример #1
0
        public ActionResult Create(int total, CarritoCompra cc)
        {
            // Controlar que el usuario esta registrado
            if (Session["usuario"] != null)
            {
                string  login_user = (string)Session["usuario"];
                Usuario usuario    = (from u in db.Usuarios
                                      where u.login == login_user
                                      select u).First();

                Pedido pedido = new Pedido
                {
                    IdUsuario = usuario.Id,
                    fecha     = DateTime.Now,
                    total     = total
                };
                db.Pedidos.Add(pedido);
                db.SaveChanges();
                var id = pedido.IdPedido;

                foreach (Producto p in cc)
                {
                    Pedido_producto pro = (Pedido_producto)(from pp in db.Pedido_producto
                                                            where pp.idProducto == p.Id
                                                            where pp.idPedido == id
                                                            select pp).FirstOrDefault();



                    if (pro != null)
                    {
                        pro.cantidad        = pro.cantidad + 1;
                        db.Entry(pro).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        Pedido_producto productos_pedido = new Pedido_producto
                        {
                            idPedido   = id,
                            idProducto = p.Id,
                            nombre     = p.nombre,
                            image      = p.image,
                            cantidad   = 1
                        };
                        db.Pedido_producto.Add(productos_pedido);
                        db.SaveChanges();
                    }
                }
                cc.RemoveRange(0, cc.Count);

                return(RedirectToAction("Details", "Pedidos", new { id = id }));
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
Пример #2
0
        public ActionResult Child(CarritoCompra cc)
        {
            Usuario             usuario = new Usuario();
            NameValueCollection nvc     = Request.Form;
            var DNI  = nvc["DNI"];
            var user = (from u in db.Usuario
                        where u.DNI.Equals(DNI)
                        select u).FirstOrDefault();

            if (user == null)
            {
                usuario.DNI       = nvc["DNI"];
                usuario.Nombre    = nvc["Nombre"];
                usuario.Direccion = nvc["Direccion"];
                usuario.Email     = nvc["Email"];
                db.Usuario.Add(usuario);
                db.SaveChanges();
            }

            var usuarioID = (from u in db.Usuario
                             where u.DNI.Equals(DNI)
                             select u).First();
            Pedido pedido = new Pedido();

            pedido.Usuario = usuarioID.Id;
            Random r = new Random();

            pedido.Nombre = (r.Next(0, 100000000).ToString());
            db.Pedido.Add(pedido);

            foreach (Producto producto in cc)
            {
                Pedido_producto pedidoProducto = new Pedido_producto();
                pedidoProducto.Id_pedido   = pedido.Id;
                pedidoProducto.Id_producto = producto.Id;
                db.Pedido_producto.Add(pedidoProducto);
                var query = (from p in db.Producto
                             where p.Id.Equals(producto.Id)
                             select p).First();
                query.Cantidad = query.Cantidad - 1;
            }
            db.SaveChanges();
            var pedidoID = (from u in db.Usuario
                            where u.DNI.Equals(DNI)
                            join ped in db.Pedido on u.Id equals ped.Usuario
                            orderby ped.Id descending
                            select ped).First();

            SendMessage(pedidoID.Nombre, usuarioID.Email);

            cc.Clear();



            return(RedirectToAction("Index"));
        }