public CreateResponseBody GetResponseFromAPI(WebRequest request) { string response = string.Empty; ErrorDTO pageError = new ErrorDTO(); var Error = "test123"; Tuple <ErrorDTO, string> responseFromAPI = new Tuple <ErrorDTO, string>(pageError, response); responseFromAPI = BotAPIService.GetResponse(request); CreateResponseBody responseBody = null; if (!string.IsNullOrEmpty(responseFromAPI.Item2)) { BotAPIHelper botAPIHelper = new BotAPIHelper(); var responseAfterParse = botAPIHelper.ParseCreateResponse(responseFromAPI.Item2); if (responseAfterParse.Body != null) { responseBody = responseAfterParse.Body; ApiUnavailable = false; } } return(responseBody); }
protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { //var adaptiveCardAttachment = CardsDemoWithTypes(); //await turnContext.SendActivityAsync(MessageFactory.Attachment(adaptiveCardAttachment)); if (turnContext.Activity.Type == ActivityTypes.Message) { // Check if user submitted AdaptiveCard input if (turnContext.Activity.Value != null) { //var activityValue = turnContext.Activity.AsMessageActivity().Value as Newtonsoft.Json.Linq.JObject; //if (activityValue != null) //{ // var categorySelection = activityValue.ToObject<CategorySelection>(); // var category = categorySelection.Category; // await turnContext.SendActivityAsync(category); //} // Convert String to JObject String value = turnContext.Activity.Value.ToString(); JObject results = JObject.Parse(value); // Get type from input field String submitType = results.GetValue("Type").ToString().Trim(); switch (submitType) { case "email": IMessageActivity message = Activity.CreateMessageActivity(); message.Type = ActivityTypes.Message; message.Text = "email \n <br> sent"; message.Locale = "en-Us"; message.TextFormat = TextFormatTypes.Plain; await turnContext.SendActivityAsync(message, cancellationToken); /* */ return; default: await turnContext.SendActivityAsync("No Action Logic Written for this button", cancellationToken : cancellationToken); break; } String name = results.GetValue("Type").ToString().Trim(); //String actionText = results.GetValue("ActionText").ToString(); //await turnContext.SendActivityAsync("Respond to user " + actionText, cancellationToken: cancellationToken); // Get Keywords from input field String userInputKeywords = ""; // if (name == "GetPPT") { if (name == "ViewProfile") { //String DisplayVal = results.GetValue("DisplayText").ToString(); //await turnContext.SendActivityAsync(MessageFactory.Text(DisplayVal), cancellationToken); userInputKeywords = "View Profile"; AdaptiveCard ViewcardAttachment = null; ViewcardAttachment = AdaptiveCardBotHelper.ViewProfile(); var attachment = new Attachment { ContentType = AdaptiveCard.ContentType, Content = ViewcardAttachment }; if (attachment != null) { await turnContext.SendActivityAsync(MessageFactory.Attachment(attachment), cancellationToken); //await turnContext.SendActivityAsync(MessageFactory.Text("Please enter any text to see another card."), cancellationToken); } } else if (name == "UpdateProfile") { userInputKeywords = "Update Profile"; AdaptiveCard UpdatecardAttachment = null; UpdatecardAttachment = AdaptiveCardBotHelper.UpdateProfile(); var attachment = new Attachment { ContentType = AdaptiveCard.ContentType, Content = UpdatecardAttachment }; if (attachment != null) { await turnContext.SendActivityAsync(MessageFactory.Attachment(attachment), cancellationToken); //await turnContext.SendActivityAsync(MessageFactory.Text("Please enter any text to see another card."), cancellationToken); } //userInputKeywords = results.GetValue("GetUserInputKeywords").ToString(); } else if (name == "SendIssue") { AdaptiveCard IssuecardAttachment = null; IssuecardAttachment = AdaptiveCardBotHelper.ReportIssue(); var attachment = new Attachment { ContentType = AdaptiveCard.ContentType, Content = IssuecardAttachment }; if (attachment != null) { await turnContext.SendActivityAsync(MessageFactory.Attachment(attachment), cancellationToken); //await turnContext.SendActivityAsync(MessageFactory.Text("Please enter any text to see another card."), cancellationToken); } userInputKeywords = "Report Issue"; } else if (name == "Update") { userInputKeywords = "Update Info"; userInputKeywords = results.GetValue("GetUserInputKeywords").ToString(); } // // Make Http request to api with paramaters //String myUrl = $"http://myurl.com/api/{userInputKeywords}"; //... // Respond to user await turnContext.SendActivityAsync("Respond to user" + userInputKeywords, cancellationToken : cancellationToken); } else { //Conversation Text:- hi, "*****@*****.**", "i want to raise an issue", "hardware", "software" turnContext.Activity.RemoveRecipientMention(); var text = turnContext.Activity.Text.Trim().ToLower(); Body.Text = text; apiHelperObj = new BotAPIHelper(); CreateResponseBody responseBody = apiHelperObj.CreateApiPostCall(Body); if (responseBody != null) { if (responseBody.OutputStack != null && responseBody.OutputStack.Count() > 0) { foreach (var OutputStack in responseBody.OutputStack) { if (!string.IsNullOrEmpty(OutputStack.Text)) { await turnContext.SendActivityAsync(MessageFactory.Text(OutputStack.Text), cancellationToken); //IMessageActivity message = Activity.CreateMessageActivity(); //message.Type = ActivityTypes.Message; //message.Text = "your \n <br> text"; //message.Locale = "en-Us"; //message.TextFormat = TextFormatTypes.Plain; //await turnContext.SendActivityAsync(message); } else { var mainCard = new AdaptiveCard(new AdaptiveSchemaVersion(1, 0)); if (OutputStack.Data.type == "buttons") { //===========================Add DropDownList //AdaptiveChoiceSetInput choiceSet = AdaptiveCardBotHelper.AddDropDownList(); AdaptiveChoiceSetInput choiceSet = AdaptiveCardHelper.AddDropDownToAdaptiveCard(OutputStack); mainCard.Body.Add(choiceSet); //=========================== Add Button var adaptiveButtonList = AdaptiveCardHelper.AddButtonsToAdaptiveCard(OutputStack); if (adaptiveButtonList != null && adaptiveButtonList.Count() > 0) { mainCard.Body.Add(AdaptiveCardHelper.AddTextBlock(OutputStack.Data._cognigy._default._buttons.text)); mainCard.Actions = adaptiveButtonList; } //var card = AdaptiveCardBotHelper.GetCard(OutputStack); } if (mainCard != null) { var cardAttachment = new Attachment() { ContentType = AdaptiveCard.ContentType, Content = mainCard, Name = "CardName" }; await turnContext.SendActivityAsync(MessageFactory.Attachment(cardAttachment), cancellationToken); } } } } } } } }