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")); } }
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")); }