Improve error handling on help requests, skip invalid page paths

- Issue MatterHackers/MCCentral#4126
Missing path on tree node results in visible json in Markdown view
This commit is contained in:
John Lewin 2018-09-24 13:08:05 -07:00
parent 8aca00c6e6
commit 051f33d7ae
2 changed files with 21 additions and 6 deletions

View file

@ -242,7 +242,15 @@ namespace MatterHackers.MatterControl
{
if (treeView.SelectedNode.Tag is HelpArticle article)
{
markdownWidget.LoadUri(new Uri(ApplicationController.Instance.HelpArticleSource, article.Path), sourceArticle: article);
if (!string.IsNullOrWhiteSpace(article.Path))
{
markdownWidget.LoadUri(new Uri(ApplicationController.Instance.HelpArticleSource, article.Path), sourceArticle: article);
}
else
{
// Switch to empty content when path article lacks path
markdownWidget.Markdown = "";
}
}
};

View file

@ -90,12 +90,19 @@ namespace Markdig.Agg
public void LoadUri(Uri uri, HelpArticle sourceArticle = null)
{
var webClient = new WebClient();
markdownDocument.BaseUri = uri;
try
{
var webClient = new WebClient();
markdownDocument.BaseUri = uri;
this.sourceArticle = sourceArticle;
this.Markdown = webClient.DownloadString(uri);
this.sourceArticle = sourceArticle;
this.Markdown = webClient.DownloadString(uri);
}
catch
{
// On error, revert to empty content
this.Markdown = "";
}
}
private HelpArticle sourceArticle;