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)); }
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)); }
public async Task <ActionResult> EditMovie(int id) { Movie movie = await MovieAPI.GetById(id); return(View(movie)); }