From 2fde106b92387d59e2992a395618bdb23d46c44b Mon Sep 17 00:00:00 2001 From: erri120 Date: Mon, 18 Nov 2019 16:46:55 +0100 Subject: [PATCH 1/2] ModList list from GitHub will display the description of a game instead of toString if available --- Wabbajack.Lib/ModListRegistry/ModListMetadata.cs | 15 +++++++++++++-- Wabbajack/Views/ModeSelectionWindow.xaml | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs b/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs index e6edf185..a9c6895f 100644 --- a/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs +++ b/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs @@ -6,6 +6,7 @@ using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Media.Imaging; +using CommonMark.Syntax; using Newtonsoft.Json; using Wabbajack.Common; using Wabbajack.Lib.Downloaders; @@ -31,6 +32,9 @@ namespace Wabbajack.Lib.ModListRegistry [JsonProperty("game")] public Game Game { get; set; } + [JsonIgnore] + public string GameName { get; set; } + [JsonProperty("official")] public bool Official { get; set; } @@ -75,9 +79,16 @@ namespace Wabbajack.Lib.ModListRegistry public static List LoadFromGithub() { var client = new HttpClient(); - Utils.Log("Loading Modlists from Github"); + Utils.Log("Loading ModLists from Github"); var result = client.GetStringSync(Consts.ModlistMetadataURL); - return result.FromJSONString>(); + var list = result.FromJSONString>(); + list.Do(m => + { + m.GameName = m.Game.ToDescriptionString(); + if (string.IsNullOrWhiteSpace(m.GameName)) + m.GameName = m.Game.ToString(); + }); + return list; } public bool NeedsDownload(string modlistPath) diff --git a/Wabbajack/Views/ModeSelectionWindow.xaml b/Wabbajack/Views/ModeSelectionWindow.xaml index 057eaf8f..37364ec8 100644 --- a/Wabbajack/Views/ModeSelectionWindow.xaml +++ b/Wabbajack/Views/ModeSelectionWindow.xaml @@ -97,7 +97,7 @@ Grid.Row="1" Grid.Column="4" HorizontalAlignment="Right" - Text="{Binding Game}" + Text="{Binding GameName}" TextAlignment="Right" /> Date: Mon, 18 Nov 2019 18:06:17 +0100 Subject: [PATCH 2/2] Changed ToDescriptionString to return toString if no description is present --- Wabbajack.Common/Extensions/EnumExt.cs | 4 ++-- Wabbajack.Lib/ModListRegistry/ModListMetadata.cs | 14 +++----------- Wabbajack/View Models/GameVM.cs | 4 ---- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/Wabbajack.Common/Extensions/EnumExt.cs b/Wabbajack.Common/Extensions/EnumExt.cs index 8f289ba2..d4b7c36b 100644 --- a/Wabbajack.Common/Extensions/EnumExt.cs +++ b/Wabbajack.Common/Extensions/EnumExt.cs @@ -23,8 +23,8 @@ namespace Wabbajack.Common throw new ArgumentException("T must be an Enum"); } - DescriptionAttribute[] attributes = (DescriptionAttribute[])val.GetType().GetField(val.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false); - return attributes.Length > 0 ? attributes[0].Description : string.Empty; + var attributes = (DescriptionAttribute[])val.GetType().GetField(val.ToString()).GetCustomAttributes(typeof(DescriptionAttribute), false); + return attributes.Length > 0 ? attributes[0].Description : val.ToString(); } } } diff --git a/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs b/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs index a9c6895f..36fa30b9 100644 --- a/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs +++ b/Wabbajack.Lib/ModListRegistry/ModListMetadata.cs @@ -32,8 +32,7 @@ namespace Wabbajack.Lib.ModListRegistry [JsonProperty("game")] public Game Game { get; set; } - [JsonIgnore] - public string GameName { get; set; } + [JsonIgnore] public string GameName => this.Game.ToDescriptionString(); [JsonProperty("official")] public bool Official { get; set; } @@ -80,15 +79,8 @@ namespace Wabbajack.Lib.ModListRegistry { var client = new HttpClient(); Utils.Log("Loading ModLists from Github"); - var result = client.GetStringSync(Consts.ModlistMetadataURL); - var list = result.FromJSONString>(); - list.Do(m => - { - m.GameName = m.Game.ToDescriptionString(); - if (string.IsNullOrWhiteSpace(m.GameName)) - m.GameName = m.Game.ToString(); - }); - return list; + var result = client.GetStringSync(Consts.ModlistMetadataURL); + return result.FromJSONString>(); } public bool NeedsDownload(string modlistPath) diff --git a/Wabbajack/View Models/GameVM.cs b/Wabbajack/View Models/GameVM.cs index 1cd3d1dc..92fc9411 100644 --- a/Wabbajack/View Models/GameVM.cs +++ b/Wabbajack/View Models/GameVM.cs @@ -16,10 +16,6 @@ namespace Wabbajack { this.Game = game; this.DisplayName = game.ToDescriptionString(); - if (string.IsNullOrWhiteSpace(this.DisplayName)) - { - this.DisplayName = game.ToString(); - } } } }