public async Task <Message> RetrieveIntent(Query inboundQuery) { var config = new AIConfiguration(ConfigurationManager.AppSettings["APIAI_TOKEN"], SupportedLanguage.English); apiAi = new ApiAi(config); var response = apiAi.TextRequest(inboundQuery.Body); var intent = response.Result.Metadata.IntentName; if (intent == null) { return(new Message() { Body = response.Result.Fulfillment.Speech }); } else { var city = response.Result.Parameters.Where(p => p.Key == "geo-city").FirstOrDefault().Value.ToString(); var state = response.Result.Parameters.Where(p => p.Key == "geo-state-us").FirstOrDefault().Value.ToString(); if (city == "") { return(new Message() { Body = "Please try again with a particular city." }); } else { var client = new Yelp.Api.Client(ConfigurationManager.AppSettings["YELPAPI_ID"], ConfigurationManager.AppSettings["YELPAPI_TOKEN"]); var request = new Yelp.Api.Models.SearchRequest(); request.Term = intent; request.Location = city; request.MaxResults = 5; request.OpenNow = true; var results = await client.SearchBusinessesAllAsync(request); return(new Message() { Body = intent + " in " + city + " " + state, Businesses = results.Businesses }); } } }
public async Task <SearchResponse> GetYelpSearchResponseAsync([FromQuery] SearchData searchData) { var request = new Yelp.Api.Models.SearchRequest { Location = searchData.Location, Latitude = searchData.Latitude, Longitude = searchData.Longtitude, Categories = searchData.Categories, //Term = "restaurants", - optional MaxResults = 40, OpenNow = true }; var client = new Yelp.Api.Client(_apiKey); var results = await client.SearchBusinessesAllAsync(request); return(results); }
async private Task <Yelp.Api.Models.SearchResponse> Search(Preferences prefs) { // Connect to the Yelp API Yelp.Api.Client client = new Yelp.Api.Client(ApiKey); Yelp.Api.Models.SearchRequest request = new Yelp.Api.Models.SearchRequest(); // Fill in the search parameters #region Search Parameters request.Location = prefs.Location; request.Term = GetSearchCategoryString(prefs.SearchCategories); request.Categories = "restaurant"; switch (prefs.MaxPriceRange) { case 1: request.Price = "1"; break; case 2: request.Price = "1, 2"; break; case 3: request.Price = "1, 2, 3"; break; case 4: request.Price = "1, 2, 3, 4"; break; default: request.Price = "1, 2, 3, 4"; break; } request.Radius = (int)Math.Round((prefs.SearchRadius / 1609.34), 0); request.MaxResults = 50; #endregion // Run the search and return the results Yelp.Api.Models.SearchResponse results = await client.SearchBusinessesAllAsync(request); return(results); }