Example #1
0
        public async Task <ActionResult> VoteOnNomination(VoteViewModel voteViewModel)
        {
            if (voteViewModel.Vote.Id != 0)
            {
                VoteAPI.Update(voteViewModel.Vote);
            }
            else if (voteViewModel.Vote.Id == 0)
            {
                VoteAPI.Create(voteViewModel.Vote);
            }
            ;
            Nomination nomination = await NominationAPI.GetById(voteViewModel.Vote.NominationId);

            YearCategoryModel returnParameters   = new YearCategoryModel(nomination.Year, nomination.AwardCategory);
            Nomination        nominationVotedFor = await NominationAPI.GetById(voteViewModel.Vote.NominationId);

            RecommendationViewModel recommendationViewModel = new RecommendationViewModel()
            {
                Year     = nominationVotedFor.Year,
                Category = nominationVotedFor.AwardCategory
            };

            recommendationViewModel.Movie = await MovieAPI.GetById(nominationVotedFor.MovieId);

            recommendationViewModel.MovieId = recommendationViewModel.Movie.Id;
            return(RedirectToAction(nameof(MovieRecommendation), recommendationViewModel));
        }
Example #2
0
        public async Task <ActionResult> MovieRecommendation(string year, string category, int?movieId)
        {
            Movie movieVotedFor = await MovieAPI.GetById(movieId.Value);

            List <Movie> movies = await MovieAPI.GetAll();

            movies = movies.Where(m => m.Title != movieVotedFor.Title && m.Actors != null).Distinct().ToList();
            Dictionary <Movie, int> movieRecommendations = BuildMovieDictionary(movies);
            RecommendationViewModel recommendation       = new RecommendationViewModel()
            {
                Year     = year,
                Category = category
            };

            foreach (Movie potentialRecommendation in movies)
            {
                movieRecommendations[potentialRecommendation] = GetMovieRecommendationScore(potentialRecommendation, movieVotedFor);
            }
            List <Movie> moviesWithHighestScore = FindMovieDictionaryItemsWithGreatestScore(movieRecommendations);

            recommendation.Movie = PickRandomMovieFromList(moviesWithHighestScore);
            return(View(recommendation));
        }
Example #3
0
        public async Task <ActionResult> EditMovie(int id)
        {
            Movie movie = await MovieAPI.GetById(id);

            return(View(movie));
        }