private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as Activity; //// Calculate something for us to return //int length = (activity.Text ?? string.Empty).Length; //// Return our reply to the user //await context.PostAsync($"You sent {activity.Text} which was {length} characters"); if (activity.Text == "ato") { var str = await EdaClient.GetAtoDataTypesAsync("ato"); await context.PostAsync($"You sent {activity.Text}."); await context.PostAsync($"response ----- {str}"); } else if (activity.Text == "search") { var srchClient = new SearchDatasets(); var searchResults = await srchClient.GetAzSearchResultsAsync("Energy"); // use attachment list var responseMessage = context.MakeMessage(); // show have preperties set properly for conversation and recepient responseMessage.AttachmentLayout = AttachmentLayoutTypes.List; responseMessage.Attachments = new List <Attachment>(); var i = 1; var item = searchResults.Results[0]; { var files = item.Document["files"] as string[]; string url = (string)files[0]; CardAction cardButton = new CardAction() { Title = $"{new UriBuilder(url).Uri.AbsoluteUri}", Type = "openUrl", Value = new UriBuilder(url).Uri.AbsoluteUri }; List <CardAction> cardActions = new List <CardAction>(); cardActions.Add(cardButton); HeroCard hCard = new HeroCard() { Title = $"{i++}: {item.Document["title"]}", Text = $"{item.Document["description"]}", //Text = $"Text: {v.name}", Images = null, Buttons = cardActions }; Attachment cardAttachment = hCard.ToAttachment(); responseMessage.Attachments.Add(cardAttachment); } await context.PostAsync(responseMessage); } else if (activity.Text == "graph") { var resp = await EdaClient.GetPlotAsync("ato"); var responseMessage = context.MakeMessage(); responseMessage.Attachments.Add(new Attachment() { ContentUrl = resp[0], ContentType = "image/png", Name = "ato.png" }); await context.PostAsync(responseMessage); } else { } context.Wait(MessageReceivedAsync); }
public async Task FindDatasetIntent(IDialogContext context, LuisResult result) { EntityRecommendation dataSetEntity; string query; if (result.TryFindEntity("datasettopic", out dataSetEntity)) { System.Diagnostics.Debug.WriteLine($"Call Azure Search, pass {dataSetEntity}"); query = dataSetEntity.Entity; } else { query = result.Query; } var srchClient = new SearchDatasets(); var searchResults = await srchClient.GetAzSearchResultsAsync(query); // use attachment list var responseMessage = context.MakeMessage(); // show have preperties set properly for conversation and recepient responseMessage.AttachmentLayout = AttachmentLayoutTypes.List; responseMessage.Attachments = new List <Attachment>(); var i = 0; //var item = searchResults.Results[0]; foreach (var item in searchResults.Results) { if (i > 5) { break; } var files = item.Document["files"] as string[]; string url = (string)files[0]; CardAction cardButton = new CardAction() { Title = $"{new UriBuilder(url).Uri.AbsoluteUri}", Type = "openUrl", Value = new UriBuilder(url).Uri.AbsoluteUri }; List <CardAction> cardActions = new List <CardAction>(); cardActions.Add(cardButton); HeroCard hCard = new HeroCard() { Title = $"{i++}: {item.Document["title"]}", Subtitle = $"Score: {item.Score}", Text = $"{item.Document["description"]}", //Text = $"Text: {v.name}", Images = null, Buttons = cardActions }; Attachment cardAttachment = hCard.ToAttachment(); responseMessage.Attachments.Add(cardAttachment); responseMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel; } if (searchResults.Results.Count > 0) { await context.PostAsync(responseMessage); } else { await context.PostAsync($"I couldn't find any thing about {query}. Try to rephrase your question!"); await context.PostAsync($"... or maybe there is nothing about this topic! hmmm! :/ "); } context.Wait(this.MessageReceived); }