private Attachment CreateBookingConfimrationCardAttachment(FlightitineraryModel data) { try { var cardResourcePath = "TravelBookingBot.Cards.flightCard.json"; using (var stream = GetType().Assembly.GetManifestResourceStream(cardResourcePath)) { using (var reader = new StreamReader(stream)) { var adaptiveCardTempalte = reader.ReadToEnd(); JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.IsoDateFormat, DateTimeZoneHandling = DateTimeZoneHandling.Utc }; var dataJson = JsonConvert.SerializeObject(data, microsoftDateFormatSettings); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(adaptiveCardTempalte, dataJson); return(new Attachment() { ContentType = AdaptiveCards.AdaptiveCard.ContentType,// "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(cardJson), }); } } } catch (Exception ex) { throw; } }
public Attachment CreateAttachment(int Index, string dataJson) { if (string.IsNullOrEmpty(dataJson)) { var adaptiveCardJson = File.ReadAllText(_path[Index]); var adaptiveCardAttachment = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(adaptiveCardJson), }; return(adaptiveCardAttachment); } else { var CardJson = File.ReadAllText(_path[Index]); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(CardJson, dataJson); var adaptiveCardAttachment = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(cardJson), }; return(adaptiveCardAttachment); } }
public static async Task GetUserAsync(ITurnContext turnContext, TokenResponse tokenResponse, string upn) { if (turnContext == null) { throw new ArgumentNullException(nameof(turnContext)); } if (tokenResponse == null) { throw new ArgumentNullException(nameof(tokenResponse)); } var client = new SimpleGraphClient(tokenResponse.Token); var user = await client.GetUserAsync(upn); var fileRead = System.IO.File.ReadAllText(@".\Resources\GetUserCard.json"); var item = (JObject)JsonConvert.DeserializeObject(fileRead); string classData = JsonConvert.SerializeObject(user, Formatting.Indented); AdaptiveTransformer transformer = new AdaptiveTransformer(); string cardJson = transformer.Transform(fileRead, classData); Attachment attachment = new Attachment(); attachment.ContentType = "application/vnd.microsoft.card.adaptive"; attachment.Content = JsonConvert.DeserializeObject(cardJson); var attachments = new List <Attachment>(); var reply = MessageFactory.Attachment(attachments); reply.Attachments.Add(attachment); await turnContext.SendActivityAsync(reply); }
private static async Task <DialogTurnResult> ConfirmStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var rawValues = (JObject)stepContext.Context.Activity.Value; var userProfile = (UserProfile)stepContext.Values[UserInfo]; userProfile.Domain = (string)rawValues.GetValue("Domain"); userProfile.UserPrincipalName = userProfile.DomainName + userProfile.Domain; Dictionary <string, object> args = (Dictionary <string, object>)stepContext.Options; Attachment cardAttachment = (Attachment)args["cardAttachment"]; var fileRead = cardAttachment.Content.ToString(); string classData = JsonConvert.SerializeObject(userProfile, Formatting.Indented); AdaptiveTransformer transformer = new AdaptiveTransformer(); cardAttachment.Content = JsonConvert.DeserializeObject(transformer.Transform(fileRead, classData)); return(await stepContext.PromptAsync( nameof(TextPrompt), new PromptOptions { Prompt = new Activity { Type = ActivityTypes.Message, Attachments = new List <Attachment>() { cardAttachment }, }, }, cancellationToken : cancellationToken)); }
public string AsJson <T>(T data) { var cardJson = AsJson(); var cardData = JsonConvert.SerializeObject(data); var transformer = new AdaptiveTransformer(); return(transformer.Transform(cardJson, cardData)); }
private Attachment buildWeatherCard(string templateJson, string dataJson) { var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(templateJson, dataJson); return(new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(cardJson) }); }
private string PopulateCard(string cardJson, string templateName) { // return template if no data if (string.IsNullOrEmpty(cardJson)) { return(LoadCardTemplate(templateName)); } var templateJson = LoadCardTemplate(templateName); var transformer = new AdaptiveTransformer(); var populatedCard = transformer.Transform(templateJson, cardJson); return(populatedCard); }
public static Attachment CreateAdaptiveCardFromTemplateAndDataAttachment <T>(string filePath, T data) { var transformer = new AdaptiveTransformer(); var templateJson = File.ReadAllText(filePath); var dataJson = JsonConvert.SerializeObject(data); var cardJson = transformer.Transform(templateJson, dataJson); var adaptiveCardAttachment = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(cardJson), }; return(adaptiveCardAttachment); }
private AdaptiveCard CreateWeatherCard(HeWeather6Item weather) { var templateJson = "{\r\n \"$schema\": \"http://adaptivecards.io/schemas/adaptive-card.json\",\r\n \"type\": \"AdaptiveCard\",\r\n \"version\": \"1.0\",\r\n \"body\": [\r\n {\r\n \"type\": \"TextBlock\",\r\n \"text\": \"{name}\",\r\n \"size\": \"Large\",\r\n \"isSubtle\": true\r\n },\r\n {\r\n \"type\": \"ColumnSet\",\r\n \"columns\": [\r\n {\r\n \"type\": \"Column\",\r\n \"width\": \"auto\",\r\n \"items\": [\r\n {\r\n \"type\": \"Image\",\r\n \"url\": \"{iconUrl}\",\r\n \"size\": \"Small\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"Column\",\r\n \"width\": \"auto\",\r\n \"items\": [\r\n {\r\n \"type\": \"TextBlock\",\r\n \"text\": \"{tmp}\",\r\n \"size\": \"ExtraLarge\",\r\n \"spacing\": \"None\"\r\n }\r\n ]\r\n },\r\n {\r\n \"type\": \"Column\",\r\n \"width\": \"stretch\",\r\n \"items\": [\r\n {\r\n \"type\": \"TextBlock\",\r\n \"text\": \"℃\",\r\n \"weight\": \"Bolder\",\r\n \"spacing\": \"Small\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n}"; var dataJson = JsonConvert.SerializeObject(new { name = $"{weather.basic.location},{weather.basic.parent_city}", iconUrl = $"https://cdn.heweather.com/cond_icon/{weather.now.cond_code}.png", weather.now.tmp }); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(templateJson, dataJson); var result = AdaptiveCard.FromJson(cardJson); return(result.Card); }
public static async Task <AdaptiveCard> GetCardAsync(ITurnContext turnContext, AddToProjectCardActionValue payload) { var templateJson = String.Empty; var assembly = Assembly.GetEntryAssembly(); var resourceStream = assembly.GetManifestResourceStream("ConsultingBot.Cards.AddToProjectConfirmationCard.json"); using (var reader = new StreamReader(resourceStream, Encoding.UTF8)) { templateJson = await reader.ReadToEndAsync(); } var dataJson = JsonConvert.SerializeObject(payload); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(templateJson, dataJson); return(AdaptiveCard.FromJson(cardJson).Card); }
public AdaptiveCard CreateCard(TModel startingData, ITurnContext context, CancellationToken cancellationToken = default) { var contextJSON = JsonConvert.SerializeObject(startingData); //Transform our template with the data model specified var transformedJSON = Transformer.Transform(JSON, contextJSON); //And then create the card from it AdaptiveCardParseResult parseResult = AdaptiveCard.FromJson(transformedJSON); //Print any warnings //TODO: This should tap into app insights stream somewhere if (parseResult.Warnings.Any()) { foreach (var warning in parseResult.Warnings) { Console.WriteLine($"[WARN] {warning.Code} - {warning.Message}"); } } return(parseResult.Card); }
public static async Task<AdaptiveCard> GetCardAsync(ITurnContext turnContext, ConsultingRequestDetails requestDetails) { var templateJson = String.Empty; var assembly = Assembly.GetEntryAssembly(); var resourceStream = assembly.GetManifestResourceStream("ConsultingBot.Cards.AddToProjectCard.json"); using (var reader = new StreamReader(resourceStream, Encoding.UTF8)) { templateJson = await reader.ReadToEndAsync(); } requestDetails.monthZero = GetMonthFromNow(0).ToString("MMMM, yyyy"); requestDetails.monthOne = GetMonthFromNow(1).ToString("MMMM, yyyy"); requestDetails.monthTwo = GetMonthFromNow(2).ToString("MMMM, yyyy"); var dataJson = JsonConvert.SerializeObject(requestDetails); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(templateJson, dataJson); var result = AdaptiveCard.FromJson(cardJson).Card; return result; }
private async Task <DialogTurnResult> TherapistSearch(WaterfallStepContext stepContext, CancellationToken cancellationToken) { List <JToken> therapists = await FilterTherapists(stepContext); if (therapists.Capacity == 0) { return(await stepContext.PromptAsync(DialogIds.NoneFound, new PromptOptions() { Prompt = await _responder.RenderTemplate(stepContext.Context, stepContext.Context.Activity.Locale, EscalateResponses.ResponseIds.NoneFound), })); } // Fix ToString if it doesn't work var templateJson = _templateEngine.GenerateActivityForLocale("TherapistRecommendationCard"); var templateString = templateJson.Attachments.Single().Content.ToString(); var cardList = new List <string>(); foreach (var t in therapists) { // Convert to string var dataJson = t.ToString(); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(templateString, dataJson); // Create attachment cardList.Add(cardJson); } var carousel = MessageFactory.Carousel(cardList.Select(c => { return(jsonToCard(c)); }).ToList()); // Return card await stepContext.Context.SendActivityAsync(carousel); return(await EndDialogAndProcessing(stepContext, cancellationToken)); }
//public Attachment Create(string cardResourcePath) //{ // using (var stream = GetType().Assembly.GetManifestResourceStream(cardResourcePath)) // { // using (var reader = new StreamReader(stream)) // { // var adaptiveCard = reader.ReadToEnd(); // return new Attachment() // { // ContentType = "application/vnd.microsoft.card.adaptive", // Content = JsonConvert.DeserializeObject(adaptiveCard), // }; // } // } //} //public Attachment CreateAttachment(string filePath) //{ // var adaptiveCardJson = File.ReadAllText(filePath); // var adaptiveCardAttachment = new Attachment() // { // ContentType = "application/vnd.microsoft.card.adaptive", // Content = JsonConvert.DeserializeObject(adaptiveCardJson), // }; // return adaptiveCardAttachment; //} //public Attachment CreateAttachment(int Index) //{ // var adaptiveCardJson = File.ReadAllText(_path[Index]); // var adaptiveCardAttachment = new Attachment() // { // ContentType = "application/vnd.microsoft.card.adaptive", // Content = JsonConvert.DeserializeObject(adaptiveCardJson), // }; // return adaptiveCardAttachment; //} public Attachment CreateAttachment(int Index, string dataJson) { if (string.IsNullOrEmpty(dataJson)) { //string adaptiveCardJson; //switch (Index) //{ // case 0: // adaptiveCardJson = File.ReadAllText(https://munibotstorage.blob.core.windows.net/cards/WelcomeCard.json); // break; // default: // adaptiveCardJson = ""; // break; //} var adaptiveCardJson = File.ReadAllText(_path[Index]); var adaptiveCardAttachment = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(adaptiveCardJson), }; return(adaptiveCardAttachment); } else { var CardJson = File.ReadAllText(_path[Index]); var transformer = new AdaptiveTransformer(); var cardJson = transformer.Transform(CardJson, dataJson); var adaptiveCardAttachment = new Attachment() { ContentType = "application/vnd.microsoft.card.adaptive", Content = JsonConvert.DeserializeObject(cardJson), }; return(adaptiveCardAttachment); } }