public static async Task <List <RecommendedItem> > RecommendProductAsync(MyAppUserFriend friend) { List <RecommendedItem> recommendedItem = new List <RecommendedItem>(); if (friend.Likes != null) { var friendLikes = friend.Likes.Data; var friendLikesFilteredByCategory = friendLikes.Where(like => categoriesToConsider.Contains(like.Category)); foreach (var item in friendLikesFilteredByCategory.Take(10)) { var result = await ShoppingSearchClient.GetProductsAsync(item.Name); if (result.items == null) { // skip empty results continue; } var products = result.items.Select(i => i.product).Take(2).Where(p => p != null); foreach (var product in products) { recommendedItem.Add(new RecommendedItem { Product = product, Reason = "likes " + item.Name }); } } } return(recommendedItem); }
public static async Task <List <Product> > RecommendProductAsync(MyAppUserFriend friend) { List <Product> recommendedItems = new List <Product>(); List <string> categoryBasedOnGender = WomenCategoies; if (friend.Gender == "male") { categoryBasedOnGender = MenCategoies; } foreach (var item in categoryBasedOnGender) { var result = await ShoppingSearchClient.GetProductsAsync(item); //Randomly pick an item from the retrieved items Random r = new Random(); var product = result.Products[r.Next(result.Products.Count())]; var des = product.Description; //Remove html elements from Product Description string noHTML = Regex.Replace(product.Description, @"<[^>]+>| ", "").Trim(); product.Description = Regex.Replace(noHTML, @"\s{2,}", " "); recommendedItems.Add(product); } return(recommendedItems); }