public async Task <IActionResult> Put([FromBody] Resources.UserPoints points) { List <Resources.Recommendation> recommendations = new List <Resources.Recommendation>(); (await genreRepository.GetAll()).Where(g => g.IdGenre == points.Genre.Id) .Join(movieDataRepository.GetAll().Result, g => g.IdMovieData, md => md.IdMovieData, (g, md) => md) .ToList().ForEach(movie => { Resources.Movie data = _mapper.Map <Resources.Movie>(movie); int score = ScoreHelper.GetRecommendationScore(points, data, movieDataRepository, reviewRepository); Resources.Recommendation temp = new Resources.Recommendation { Movie = data, Score = score }; recommendations.Add(temp); }); return(Ok(recommendations.OrderByDescending(val => val.Score).Take(10))); }