public static void PowerSearchItems() { var nutritionix = new NutritionixClient(); nutritionix.Initialize(AppId, AppKey); var request = new PowerSearchRequest { Query = "starbucks AND frap*", Fields = new SearchResultFieldCollection {x => x.Name, x => x.NutritionFact_Calories, x => x.ItemType}, SortBy = new SearchResultSort(x => x.NutritionFact_Calories, SortOrder.Descending), Filters = new SearchFilterCollection { new ItemTypeFilter {Negated = true, ItemType = ItemType.Packaged} } }; Console.WriteLine("Power Searching Nutritionix for: 'starbucks AND frap*' sorted by calories, not a packaged food..."); SearchResponse response = nutritionix.SearchItems(request); Console.WriteLine("Displaying results 1 - {0} of {1}", response.Results.Length, response.TotalResults); foreach (SearchResult result in response.Results) { Console.WriteLine("* {0} ({1} calories) from the {2} database", result.Item.Name, result.Item.NutritionFact_Calories, result.Item.ItemType); } Console.WriteLine(); }
public static void PowerSearchItems() { var nutritionix = new NutritionixClient(); nutritionix.Initialize(AppId, AppKey); var request = new PowerSearchRequest { Queries = new QueryFilterCollection { new QueryFilter(x => x.Name, "frap*"), new QueryFilter(x => x.BrandName, "Starbucks") }, Fields = new SearchResultFieldCollection { x => x.Name, x => x.BrandName, x => x.NutritionFact_Calories, x => x.ItemType }, SortBy = new SearchResultSort(x => x.NutritionFact_Calories, SortOrder.Descending), Filters = new SearchFilterCollection { new ItemTypeFilter { Negated = true, ItemType = ItemType.Packaged } } }; Console.WriteLine("Power Searching Nutritionix for: Item Name: 'frap*' and Brand Name: 'Starbucks' sorted by calories, not a packaged food..."); SearchResponse response = nutritionix.SearchItems(request); Console.WriteLine("Displaying results 1 - {0} of {1}", response.Results.Length, response.TotalResults); foreach (SearchResult result in response.Results) { Console.WriteLine("* {0} {1} ({2} calories) from the {3} database", result.Item.BrandName, result.Item.Name, result.Item.NutritionFact_Calories, result.Item.ItemType); } Console.WriteLine(); }
public void Serialize_MinScore() { var request = new PowerSearchRequest {MinimumScore = 0.5}; string json = JsonConvert.SerializeObject(request); StringAssert.Contains("\"min_score\":0.5", json); }
public void Serialize_MinScore() { var request = new PowerSearchRequest { MinimumScore = 0.5 }; string json = JsonConvert.SerializeObject(request); StringAssert.Contains("\"min_score\":0.5", json); }
public void Serialize_Filters() { var request = new PowerSearchRequest { Filters = new SearchFilterCollection { new ItemTypeFilter {ItemType = ItemType.Restaurant}, new ComparisonFilter(x => x.NutritionFact_Calories){Operator = ComparisonOperator.LessThan, Value = 100} } }; string json = JsonConvert.SerializeObject(request); StringAssert.Contains("\"filters\":{\"item_type\":1,\"nf_calories\":{\"lt\":100}}", json); }
public void PowerSearch_ReturnsPopulatedResults() { var sampleResponse = new SearchResponse { TotalResults = 1, Results = new[] {new SearchResult()} }; string json = JsonConvert.SerializeObject(sampleResponse); MockResponse(json); var request = new PowerSearchRequest {Query = "foobar"}; SearchResponse response = _nutritionix.SearchItems(request); Assert.AreEqual(1, response.Results.Length); }
public void PowerSearch_ReturnsPopulatedResults() { var sampleResponse = new SearchResponse { TotalResults = 1, Results = new[] { new SearchResult() } }; string json = JsonConvert.SerializeObject(sampleResponse); MockResponse(json); var request = new PowerSearchRequest { Query = "foobar" }; SearchResponse response = _nutritionix.SearchItems(request); Assert.AreEqual(1, response.Results.Length); }
public void Serialize_Filters() { var request = new PowerSearchRequest { Filters = new SearchFilterCollection { new ItemTypeFilter { ItemType = ItemType.Restaurant }, new ComparisonFilter(x => x.NutritionFact_Calories) { Operator = ComparisonOperator.LessThan, Value = 100 } } }; string json = JsonConvert.SerializeObject(request); StringAssert.Contains("\"filters\":{\"item_type\":1,\"nf_calories\":{\"lt\":100}}", json); }
public static ICollection <Item> PowerSearchItems(string foodName, string brandName, bool isRestaurant, bool isPackaged, bool isUsda) { var nutritionix = new NutritionixClient(); nutritionix.Initialize(AppId, AppKey); var request = new PowerSearchRequest(); request.Queries = new QueryFilterCollection(); if (!String.IsNullOrEmpty(foodName)) { request.Queries.Add(new QueryFilter(x => x.Name, foodName)); } if (!String.IsNullOrEmpty(brandName)) { request.Queries.Add(new QueryFilter(x => x.BrandName, brandName)); } request.Fields = new SearchResultFieldCollection { x => x.Name, x => x.BrandName, x => x.NutritionFact_Calories, x => x.NutritionFact_TotalCarbohydrate, x => x.NutritionFact_Protein, x => x.NutritionFact_TotalFat, x => x.NutritionFact_Sugar, x => x.NutritionFact_DietaryFiber, x => x.ItemType }; request.SortBy = new SearchResultSort(x => x.NutritionFact_Calories, SortOrder.Descending); request.Filters = new SearchFilterCollection(); if (isRestaurant) { request.Filters.Add(new ItemTypeFilter { Negated = false, ItemType = ItemType.Restaurant }); } if (isPackaged) { request.Filters.Add(new ItemTypeFilter { Negated = false, ItemType = ItemType.Packaged }); } if (isUsda) { request.Filters.Add(new ItemTypeFilter { Negated = false, ItemType = ItemType.USDA }); } SearchResponse response = nutritionix.SearchItems(request); List <Item> searchResults = new List <Item>(); foreach (SearchResult result in response.Results) { searchResults.Add(new Item() { BrandName = result.Item.BrandName, Name = result.Item.Name, NutritionFact_Calories = result.Item.NutritionFact_Calories, NutritionFact_Sugar = result.Item.NutritionFact_Sugar, NutritionFact_TotalCarbohydrate = result.Item.NutritionFact_TotalCarbohydrate, NutritionFact_Protein = result.Item.NutritionFact_Protein, NutritionFact_TotalFat = result.Item.NutritionFact_TotalFat, NutritionFact_DietaryFiber = result.Item.NutritionFact_DietaryFiber, ItemType = result.Item.ItemType }); } return(searchResults); }