public async Task<List<ItemRecommendation>> GetItemRecommendationsAsync(string userId, int maxNumberOfItems)
 {
     var request = new JObject();
     request[Constants.UserId] = userId;
     request[Constants.MaxNumberOfItems] = maxNumberOfItems;
     var body = request.ToString(Formatting.None);
     var response = (JObject) (await ExecuteAsync(Constants.EngineResource, Method.POST, body));
     var recommendations = new List<ItemRecommendation>();
     foreach (var item in response[Constants.Items])
     {
         var property = item.First.Value<JProperty>();
         var recommendation = new ItemRecommendation
         {
             ItemId = property.Name,
             Score = item.First.First.Value<float>()
         };
         recommendations.Add(recommendation);
     }
     return recommendations;
 
 }
Example #2
0
        public async Task <List <ItemRecommendation> > GetItemRecommendationsAsync(string userId, int maxNumberOfItems)
        {
            var request = new JObject();

            request[Constants.UserId]           = userId;
            request[Constants.MaxNumberOfItems] = maxNumberOfItems;
            var body            = request.ToString(Formatting.None);
            var response        = (JObject)(await ExecuteAsync(Constants.EngineResource, Method.POST, body));
            var recommendations = new List <ItemRecommendation>();

            foreach (var item in response[Constants.Items])
            {
                var property       = item.First.Value <JProperty>();
                var recommendation = new ItemRecommendation
                {
                    ItemId = property.Name,
                    Score  = item.First.First.Value <float>()
                };
                recommendations.Add(recommendation);
            }
            return(recommendations);
        }
Example #3
0
        public List <ItemRecommendation> GetItemRankings(string userId, string[] itemIds)
        {
            if (!itemIds.Any())
            {
                throw new InvalidOperationException("Must have at least one itemId");
            }
            var request = new JObject();

            request[Constants.UserId] = userId;
            var jItems = new JArray();

            foreach (var itemId in itemIds)
            {
                jItems.Add(itemId);
            }
            request[Constants.ItemIds] = jItems;
            var body     = request.ToString(Formatting.None);
            var response = (JObject)Execute(Constants.EngineResource, Method.POST, body);

            if (response[Constants.IsOriginal].Value <bool>())
            {
                return(new List <ItemRecommendation>());
            }
            var recommendations = new List <ItemRecommendation>();

            foreach (var item in response[Constants.Items])
            {
                var property       = item.First.Value <JProperty>();
                var recommendation = new ItemRecommendation
                {
                    ItemId = property.Name,
                    Score  = item.First.First.Value <float>()
                };
                recommendations.Add(recommendation);
            }
            return(recommendations);
        }
        public List<ItemRecommendation> GetItemRankings(string userId, string[] itemIds)
        {
            if (!itemIds.Any())
            {
                throw new InvalidOperationException("Must have at least one itemId");
            }
            var request = new JObject();
            request[Constants.UserId] = userId;
            var jItems = new JArray();
            foreach (var itemId in itemIds)
            {
                jItems.Add(itemId);
            }
            request[Constants.ItemIds] = jItems;
            var body = request.ToString(Formatting.None);
            var response = (JObject)Execute(Constants.EngineResource, Method.POST, body);
            if (response[Constants.IsOriginal].Value<bool>())
            {
                return new List<ItemRecommendation>();
            }
            var recommendations = new List<ItemRecommendation>();
            foreach (var item in response[Constants.Items])
            {
                var property = item.First.Value<JProperty>();
                var recommendation = new ItemRecommendation
                {
                    ItemId = property.Name,
                    Score = item.First.First.Value<float>()
                };
                recommendations.Add(recommendation);
            }
            return recommendations;

        }