using System.Linq; using System.Windows; using System.Windows.Documents; namespace VRCMelonAssistant { public partial class ModInfoWindow : Window { public ModInfoWindow() { InitializeComponent(); } public void SetMod(Mod mod) { Title = string.Format((string) FindResource("ModInfoWindow:Title"), mod.versions[0].name); ModDescription.Text = mod.versions[0].description ?? (string) FindResource("ModInfoWindow:NoDescription"); ModName.Text = mod.versions[0].name; ModAuthor.Text = string.Format((string) FindResource("ModInfoWindow:Author"), mod.versions[0].author ?? FindResource("ModInfoWindow:NoAuthor")); ModVersion.Text = mod.versions[0].modversion; var dlLink = mod.versions[0].downloadlink; DownloadLink.Text = (string) FindResource("ModInfoWindow:DownloadLink"); DownloadLink.Inlines.Add(new Run(" ")); if (dlLink?.StartsWith("http") == true) DownloadLink.Inlines.Add(WrapNavigator(new Hyperlink(new Run(dlLink)))); else DownloadLink.Inlines.Add(new Run(dlLink)); var srcLink = mod.versions[0].sourcelink; SourceCodeLink.Text = (string) FindResource("ModInfoWindow:SourceCodeLink"); SourceCodeLink.Inlines.Add(new Run(" ")); if (srcLink?.StartsWith("http") == true) SourceCodeLink.Inlines.Add(WrapNavigator(new Hyperlink(new Run(srcLink)))); else SourceCodeLink.Inlines.Add(new Run(srcLink)); InternalIds.Text = string.Format((string) FindResource("ModInfoWindow:InternalIds"), mod._id, mod.versions[0]._version); } private static Hyperlink WrapNavigator(Hyperlink link) { link.RequestNavigate += HyperlinkExtensions.Hyperlink_RequestNavigate; return link; } } }