protected override HashSet <int> GetExtraAnimesToReturn(MalAnimeRecsResults recResults) { HashSet <int> recommendedIds = new HashSet <int>(); foreach (RecEngine.MAL.MalAnimeRecsRecommenderUser recommender in recResults.Recommenders) { foreach (RecEngine.MAL.MalAnimeRecsRecommenderRecommendation recommendedAnime in recommender.AllRecommendations) { recommendedIds.Add(recommendedAnime.MalAnimeId); } } return(recommendedIds); }
protected override void SetSpecializedExtraResponseProperties( GetMalRecsResponse <DTO.AnimeRecsRecommendation, MalAnimeRecsExtraResponseData> response, MalAnimeRecsResults recResults) { response.Data = new MalAnimeRecsExtraResponseData( targetScoreUsed: recResults.TargetScoreUsed, recommenders: recResults.Recommenders.Select(recommender => new DTO.MalAnimeRecsRecommender( userId: recommender.UserId, username: UsernamesByUserId[recommender.UserId], recs: recommender.AllRecommendations.Select(recommendedAnime => new DTO.MalAnimeRecsRecommenderRecommendation( malAnimeId: recommendedAnime.MalAnimeId, judgment: recommender.RecsLiked.Contains(recommendedAnime) ? DTO.AnimeRecsRecommendationJudgment.Liked : recommender.RecsNotLiked.Contains(recommendedAnime) ? DTO.AnimeRecsRecommendationJudgment.NotLiked : recommender.RecsInconclusive.Contains(recommendedAnime) ? DTO.AnimeRecsRecommendationJudgment.Inconclusive : AnimeRecsRecommendationJudgment.NotInCommon, recommenderScore: recommendedAnime.RecommenderScore, averageScore: recommendedAnime.AverageScore )).ToList(), compatibility: recommender.Compatibility, compatibilityLowEndpoint: recommender.CompatibilityLowEndpoint, compatibilityHighEndpoint: recommender.CompatibilityHighEndpoint )).ToList() ); }