public PersonalizeViewModel() { RecommendedItems = new RecommendedItems(); MoviesRatedByUser = new MoviesRatedByUser(); MostPopularItems = new MostPopularItems(); PersonalizedRankingResults = new PersonalizedRankingResults(); SimilarItems = new SimilarItems(); PersonalizedRankingResultsForRecommendations = new PersonalizedRankingResults(); }
public async Task <PersonalizedRankingResults> GetPersonalizedResults(string userId, List <Movie> movies) { PersonalizedRankingResults results = null; try { //USER_PERSONALIZATION -- userid required var request = new GetPersonalizedRankingRequest //personal-ranking { CampaignArn = AwsParameterStoreClient.GetPersonalRankingArn(), UserId = userId, InputList = movies.Select(s => s.Id).ToList() }; var response = await AmazonPersonalizeRuntimeClient.GetPersonalizedRankingAsync(request); var recommendedItems = response.PersonalizedRanking; var json = JsonConvert.SerializeObject(recommendedItems); Logger.LogInformation("GetPersonalizedResults:" + userId + ": " + json); results = new PersonalizedRankingResults(); List <string> itemIds = recommendedItems.Select(s => s.ItemId).ToList(); results.Movies = await _storageService.GetMovieData(itemIds.ToArray()); return(results); } catch (Exception ex) { throw; } }