Пример #1
0
        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);
        }
Пример #3
0
        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);
        }