Esempio n. 1
0
        public async Task PlayerOverview(IDialogContext context, LuisResult result)
        {
            await context.PostAsync("Looking for him, give me a sec...");

            DBConnector            _dbconnector        = new DBConnector();
            BingImageSearchService _imageSearchService = new BingImageSearchService();
            BingNewsSearchService  _newsSearchService  = new BingNewsSearchService();

            string message = "";

            if (result.Entities.Count > 0)
            {
                string      playerName = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(result.Entities.Where(e => e.Type == "Player").FirstOrDefault().Entity);
                Predictions playerInfo = await _dbconnector.GetPlayerInfoByName(playerName);

                if (string.IsNullOrEmpty(playerName) || playerInfo == null)
                {
                    message = "I'm afraid I don't know this player...could you please try again?";
                    await PostMessage(context, message);
                }
                else
                {
                    var picture = await _imageSearchService.GetPlayerPhotoByName(playerInfo.Player);

                    List <NewsValue> news = await _newsSearchService.GetPlayerNewsByName(playerInfo.Player);

                    Attachment        card         = CreateOverviewCard(picture, playerInfo);
                    List <Attachment> newsCarousel = CreateNewsCarousel(news);

                    await context.PostAsync("Got it!");
                    await ReplyWithCardAndNews(context, card, newsCarousel);
                }
            }
            else
            {
                message = "I'm afraid I don't know this player...could you please try again?";
                await PostMessage(context, message);
            }
        }
        private async Task <BingJson> GetSearchResults(string keyword, int count, int offset)
        {
            var searchService = new BingNewsSearchService();

            return(await searchService.MakeRequestAsync(keyword, count, offset));
        }