public async Task <PersonalizeViewModel> GetRecommendations(string userid) { try { var randomUserIdGenerator = new RandomUserIdGenerator(); if (string.IsNullOrEmpty(userid)) { userid = randomUserIdGenerator.GetUser(); } PersonalizeViewModel results = new PersonalizeViewModel(); //user recommendations _logger.LogInformation("START: getting recommended items"); var recommendations = await PersonalizedRecommendationsService.GetRecommendations(userid); results.User = recommendations.User; results.RecommendedItems = recommendations.RecommendedItems; _logger.LogInformation("END: getting recommended items"); //movies rated by user _logger.LogInformation("START: getting movies rated by user"); results.MoviesRatedByUser = await PersonalizedRecommendationsService.GetAllMoviesRatedByUser(userid); _logger.LogInformation("END: getting movies rated by user"); //most popular items _logger.LogInformation("START: getting most popular items"); results.MostPopularItems = await PersonalizedRecommendationsService.GetMostPopularItems(userid); _logger.LogInformation("END: getting most popular items"); //recommendations by ranking for most popular items _logger.LogInformation("START: getting personalized-ranking for most popular items"); results.PersonalizedRankingResults = await PersonalizedRecommendationsService.GetPersonalizedResults(userid, results.MostPopularItems.Movies); _logger.LogInformation("END: getting personalized-ranking for recommended items"); //recommendations by ranking for likely recommendations _logger.LogInformation("START: getting personalized-ranking for recommended items"); results.PersonalizedRankingResultsForRecommendations = await PersonalizedRecommendationsService.GetPersonalizedResults(userid, results.RecommendedItems.Movies); _logger.LogInformation("END: getting personalized-ranking for recommended items"); return(results); } catch (Exception e) { throw; } }
public virtual JsonResult Save(string data) { var js = new JavaScriptSerializer(); js.Deserialize <dynamic>(data); var viewModel = new PersonalizeViewModel(); viewModel.UpdateTemplateChartViewModel(data); var response = _workspaceService.TemplateSave(viewModel); return(Json(response)); }
public PersonalizeViewModel GetUserData(string userId) { PersonalizeViewModel results = null; results = new PersonalizeViewModel { User = new User() { User_Id = userId } }; return(results); }
public async Task <PersonalizeViewModel> GetRecommendations(string userId) { PersonalizeViewModel results = null; try { //USER_PERSONALIZATION -- userid required var request = new GetRecommendationsRequest { CampaignArn = AwsParameterStoreClient.GetPersonalRecommendationsArn(), //personal-recommendations-metadata UserId = userId, NumResults = 10 }; var response = await AmazonPersonalizeRuntimeClient.GetRecommendationsAsync(request); var recommendedItems = response.ItemList; var json = JsonConvert.SerializeObject(recommendedItems); Logger.LogInformation("GetRecommendations:" + userId + ": " + json); results = new PersonalizeViewModel { User = new User() { User_Id = userId } }; //get movie thumbnail from imdb IList <RecommendedItems> recItems = new List <RecommendedItems>(); List <string> itemIds = recommendedItems.Select(s => s.ItemId).ToList(); results.RecommendedItems.Movies = await _storageService.GetMovieData(itemIds.ToArray()); return(results); } catch (Exception ex) { throw; } }
public static PersonalizeViewModel UpdateTemplateChartViewModel(this PersonalizeViewModel viewModel, string clientField) { JavaScriptSerializer js = new JavaScriptSerializer(); dynamic layoutData = js.Deserialize <dynamic>(clientField); var list = new List <TemplateChartViewModel>(); foreach (var item in layoutData) { list.Add( new TemplateChartViewModel { ChartId = Convert.ToInt32(item["ChartId"]), TemplateRow = Convert.ToInt32(item["TemplateRow"]), TemplateOrder = Convert.ToInt32(item["TemplateOrder"]) }); } viewModel.TemplateId = layoutData[0]["TemplateId"].ToString(); viewModel.Type = Convert.ToInt32(layoutData[0]["Type"]); viewModel.TemplateChartList = list; return(viewModel); }