private AdaptiveCards.Rendering.Uwp.AdaptiveCardRenderer CreateRenderer(string hostConfigFileName) { var renderer = SharedAdaptiveCardRenderer.Create(); string path = Package.Current.InstalledLocation.Path + "\\Previews\\" + hostConfigFileName; renderer.HostConfig = AdaptiveCards.Rendering.Uwp.AdaptiveHostConfig.FromJsonString(File.ReadAllText(path)).HostConfig; return(renderer); }
private static AdaptiveCards.Rendering.Uwp.AdaptiveCardRenderer CreateRenderer() { var renderer = SharedAdaptiveCardRenderer.Create(); string path = Package.Current.InstalledLocation.Path + "\\Previews\\Microsoft.Outlook.ActionableMessage.HostConfig.json"; renderer.HostConfig = AdaptiveCards.Rendering.Uwp.AdaptiveHostConfig.FromJsonString(File.ReadAllText(path)).HostConfig; return(renderer); }
public async void Update(AdaptiveBlockContent block, AdaptiveBlock sourceBlock, PreviewBlockHostViewModel args) { this.Children.Clear(); try { AdaptiveCards.AdaptiveCard card = (await m_renderer.TransformAsync(sourceBlock)).Result; this.Children.Add(SharedAdaptiveCardRenderer.RenderFromCard(card)); } catch { } }
private async void RenderBlock(AdaptiveBlock block) { var transformer = new AdaptiveBlockToCardTransformer(); var sharedCard = (await transformer.TransformAsync(block)).Result; if (sharedCard != null) { TextBoxCardPayload.Text = sharedCard.ToJson(); } var uwpCard = SharedAdaptiveCardRenderer.ConvertToUwpCard(sharedCard); RenderCard(CardPreview, uwpCard, m_cardRenderer); RenderCard(CardPreviewTeams, uwpCard, m_cardRendererTeams); RenderCard(CardPreviewCortana, uwpCard, m_cardRendererCortana); }
public async void Update(AdaptiveBlockContent block, AdaptiveBlock sourceBlock, PreviewBlockHostViewModel args) { AdaptiveCardContainer.Child = null; AdaptiveCards.Rendering.Uwp.AdaptiveCard card = null; try { var cardObj = sourceBlock.View.RichContent.FirstOrDefault(i => i.TargetedExperiences.Contains("Microsoft.Outlook.ActionableMessage") && i.ContentType == "application/vnd.microsoft.card.adaptive")?.Content; if (cardObj != null) { string cardJson = cardObj.ToString(); var parsedCard = SharedAdaptiveCardRenderer.Parse(cardJson); if (parsedCard != null) { card = parsedCard; } } } catch { } if (card == null) { try { var transformer = new AdaptiveBlockToCardTransformer() { Properties = new AdaptiveBlockToCardTransformerProperties() }; var sharedCard = (await transformer.TransformAsync(sourceBlock)).Result; card = SharedAdaptiveCardRenderer.ConvertToUwpCard(sharedCard); } catch { } } try { if (card != null) { AdaptiveCardContainer.Child = _cardRenderer.Value.RenderAdaptiveCard(card).FrameworkElement; } } catch { } }
internal static RenderedAdaptiveCard RenderCard(AdaptiveCard card, TypedEventHandler <RenderedAdaptiveCard, AdaptiveActionEventArgs> actionHandler = null) { try { var renderer = SharedAdaptiveCardRenderer.Create(); var inputTextRenderer = renderer.ElementRenderers.Get("Input.Text"); renderer.ElementRenderers.Set("Input.Text", new ActionCenterInputTextRenderer(inputTextRenderer)); // Constructing HostConfig from object model isn't supported yet, have to use JSON var hostConfigResult = AdaptiveHostConfig.FromJsonString(HOST_CONFIG); if (hostConfigResult.HostConfig != null) { renderer.HostConfig = hostConfigResult.HostConfig; } else { throw new Exception("HostConfig failed to parse"); } var result = renderer.RenderAdaptiveCard(card); if (result.FrameworkElement == null) { throw new Exception("Failed to render card"); } if (actionHandler != null) { // Wire up action click handler result.Action += actionHandler; } return(result); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); PreviewToast.SendRenderingError(ex); return(null); } }
private async void Button_Click(object sender, RoutedEventArgs e) { AdaptiveAction action = (sender as FrameworkElement).DataContext as AdaptiveAction; if (action != null && action.Inputs.Any()) { var transformer = new AdaptiveBlockToCardTransformer(); var sharedCard = (await transformer.TransformAsync(new AdaptiveBlock(new AdaptiveBlockContent() { Actions = { action } }))).Result; InputCollectionFields.Child = SharedAdaptiveCardRenderer.RenderFromCard(sharedCard); InputCollection.Visibility = Visibility.Visible; } else { await new MessageDialog("Action performed!").ShowAsync(); } }