private void RenderCard(AdaptiveCard inputCard) { try { // Convert the card to be rendered to a JSON string. JsonObject jobj = JsonObject.Parse(inputCard.ToJson().ToString()); // Render the card from the JSON object. RenderedAdaptiveCard renderedCard = _cardRendrer.RenderAdaptiveCardFromJson(jobj); // Get the FrameworkElement and attach it to our Frame element in the UI. CardFrame.Content = renderedCard.FrameworkElement; // Debugging check: Report any renderer warnings. // This includes things like an unknown element type found in the card // or the card exceeded the maximum number of supported actions, and so on. IList <IAdaptiveWarning> warnings = renderedCard.Warnings; for (int i = 0; i < warnings.Count; i++) { ResultTextBox.Text += warnings[i].Message + "\n"; } } catch (Exception ex) { // Display what went wrong. ResultTextBox.Text = ex.Message; } }
protected override async void LoadPayload(string payload) { var newErrors = await PayloadValidator.ValidateAsync(payload); if (newErrors.Any(i => i.Type == ErrorViewModelType.Error)) { MakeErrorsLike(newErrors); return; } try { if (_renderer == null) { InitializeRenderer(MainPageViewModel.HostConfigEditor.HostConfig); } } catch (Exception ex) { newErrors.Add(new ErrorViewModel() { Message = "Initializing renderer error: " + ex.ToString(), Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); return; } try { JsonObject jsonObject; if (JsonObject.TryParse(payload, out jsonObject)) { RenderedAdaptiveCard renderResult = _renderer.RenderAdaptiveCardFromJson(jsonObject); if (renderResult.FrameworkElement != null) { RenderedCard = renderResult.FrameworkElement; renderResult.Action += async(sender, e) => { var m_actionDialog = new ContentDialog(); if (e.Action.ActionType == ActionType.ShowCard) { AdaptiveShowCardAction showCardAction = (AdaptiveShowCardAction)e.Action; RenderedAdaptiveCard renderedShowCard = _renderer.RenderAdaptiveCard(showCardAction.Card); if (renderedShowCard.FrameworkElement != null) { m_actionDialog.Content = renderedShowCard.FrameworkElement; } } else { m_actionDialog.Content = SerializeActionEventArgsToString(e); } m_actionDialog.PrimaryButtonText = "Close"; await m_actionDialog.ShowAsync(); }; } else { newErrors.Add(new ErrorViewModel() { Message = "There was an error Rendering this card", Type = ErrorViewModelType.Error }); } } else { newErrors.Add(new ErrorViewModel() { Message = "There was an error creating a JsonObject from the card", Type = ErrorViewModelType.Error }); } if (RenderedCard is FrameworkElement) { (RenderedCard as FrameworkElement).VerticalAlignment = VerticalAlignment.Top; } MakeErrorsLike(newErrors); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); newErrors.Add(new ErrorViewModel() { Message = "Rendering failed", Type = ErrorViewModelType.Error }); MakeErrorsLike(newErrors); } }