示例#1
0
        public IActionResult Rate(MovieVoteBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                SetMessage(MessageType.Info, "An error occured");
                return(this.RedirectToAction("Details", new { id = model.MovieId }));
            }

            var result = this.movieService.AddEditMovieVote(model);

            SetMessage(MessageType.Info, $"You rated the movie with {model.Vote}");

            return(this.RedirectToAction("Details", new { id = model.MovieId }));
        }
        public MovieVoteBindingModel AddEditMovieVote(MovieVoteBindingModel model)
        {
            var existingVote = DbContext.MovieVotes
                               .FirstOrDefault(mv => mv.UserId == model.UserId && mv.MovieId == model.MovieId);

            if (existingVote == null)
            {
                var newVote = Mapper.Map <MovieVotes>(model);
                DbContext.MovieVotes.Add(newVote);
                DbContext.SaveChanges();
            }
            else
            {
                Mapper.Map(model, existingVote);
                DbContext.SaveChanges();
            }

            return(model);
        }