예제 #1
0
        public ActionResult adicionarfilme(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            //o parametro passado vem do link. /filmes/adicionarfilme/1
            Filme filme = db.Filmes.Find(id);

            if (filme == null)
            {
                return(HttpNotFound());
            }
            //verificação se ja existe a relação entre user e filme
            foreach (var item in db.UserFilmes)
            {
                if (item.FilmeID.Equals(filme.FilmeID) && item.UserId.Equals(User.Identity.GetUserId()))
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }
            //adicionar o filme ao utilizador logged in
            //db.Users.Find(User.Identity.GetUserId()).Filmes.Add(filme);
            UserFilmes newmovie = new UserFilmes();

            newmovie.Filme = filme;
            newmovie.User  = db.Users.Find(User.Identity.GetUserId());
            db.UserFilmes.Add(newmovie);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #2
0
        // o ? no parametro diz que pode ser null. neste caso tiramos porque nao pode ser
        public ActionResult removerfilme(int id)
        {
            //o parametro passado vem do link. /filmes/...lme/1
            Filme filme = db.Filmes.Find(id);

            if (filme == null)
            {
                return(HttpNotFound());
            }
            //verificação se ja existe a relação entre user e filme
            //neste caso ja podemos usar a verificação para garantir que tiramos o certo
            // nota: fazer return dentro do metodo senao partimos o foreach ao mudarmos a database :p
            UserFilmes removeme = null;

            foreach (var item in db.UserFilmes)
            {
                if (item.FilmeID.Equals(filme.FilmeID) && item.UserId.Equals(User.Identity.GetUserId()))
                {
                    //db.Users.Find(User.Identity.GetUserId()).Filmes.Remove(filme);
                    removeme = item;
                }
            }
            if (removeme != null)
            {
                db.UserFilmes.Remove(removeme);
                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }