public static void AlgorithmMovieWeight(List <MovieMenuItem> allMovies) { Dictionary <MovieMenuItem, double> localmovieRatingsWeight = new Dictionary <MovieMenuItem, double>(); MovieRatingsWeight = new Dictionary <MovieMenuItem, double>(); foreach (var movie in allMovies) { if (!MySqlCommands.IsMovieRated(movie.MovieId)) { double movieWeight = 0; if (User.Preferences["directors"].ContainsKey(movie.Director)) // weight for directors { movieWeight += User.Preferences["directors"][movie.Director][(int)UserRating.Weight]; } string[] genres = movie.Genre.Replace(" ", "").Split(','); // weight for genres string topGenre = User.Preferences["genre"].Keys.FirstOrDefault(g => genres.Contains(g)); int numberOfGenres = genres.Length; foreach (var genre in genres) { try { if (topGenre == genre) { movieWeight += User.Preferences["genre"][genre][(int)UserRating.Weight]; } else { movieWeight += User.Preferences["genre"][genre][(int)UserRating.Weight] / numberOfGenres; } } catch (KeyNotFoundException) { movieWeight += 0; } } foreach (var actor in movie.Actors) { if (User.Preferences["actors"].ContainsKey(actor)) { movieWeight += User.Preferences["actors"][actor][(int)UserRating.Weight]; } } if (User.DebugState) { movie.Title += $" | {movieWeight:0.00}"; } localmovieRatingsWeight.Add(movie, movieWeight); } } MovieRatingsWeight = localmovieRatingsWeight.OrderByDescending(m => m.Value); }
private void updateMovies() { if (!_showRated) { MenuItems.Clear(); List <MovieMenuItem> allMovies = MySqlCommands.GetMovies(); foreach (var movie in allMovies) { if (!MySqlCommands.IsMovieRated(movie.MovieId)) { AddMenuItem(movie); } } } }