From 2bb0eb77ce57a7cbce5ac5055b08c43f3e698e0a Mon Sep 17 00:00:00 2001 From: Matt Jones Date: Thu, 23 Jul 2026 01:00:41 +0100 Subject: [PATCH 1/2] Fix model. --- Model/NaviDeckList.cs | 19 ++++++++----------- Services/DeckService.cs | 13 +++++++------ 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Model/NaviDeckList.cs b/Model/NaviDeckList.cs index 2303027..5d814e8 100644 --- a/Model/NaviDeckList.cs +++ b/Model/NaviDeckList.cs @@ -4,22 +4,19 @@ namespace EvolveCDB.Model { public class NaviDeckList { - [JsonPropertyName("title")] - public required string Title { get; set; } + [JsonPropertyName("name")] + public required string Name { get; set; } - [JsonPropertyName("game_title_id")] - public required int GameId { get; set; } + [JsonPropertyName("deckCode")] + public required string DeckCode { get; set; } - [JsonPropertyName("deck_id")] - public required string DeckId { get; set; } - - [JsonPropertyName("list")] + [JsonPropertyName("mainCards")] public NaviCard[] MainDeck { get; set; } - [JsonPropertyName("sub_list")] + [JsonPropertyName("evolveCards")] public NaviCard[] EvolveDeck { get; set; } - [JsonPropertyName("p_list")] - public NaviCard[] LeaderDeck { get; set; } + [JsonPropertyName("leaderCard")] + public NaviCard LeaderCard { get; set; } } } diff --git a/Services/DeckService.cs b/Services/DeckService.cs index 0fe007e..54fa07c 100644 --- a/Services/DeckService.cs +++ b/Services/DeckService.cs @@ -21,17 +21,18 @@ public class DeckService(IOptionsMonitor cardList, IHttpClientF if (JsonSerializer.Deserialize(responseJson, typeof(NaviDeckList)) is NaviDeckList naviDeck) { - if (naviDeck.GameId != ShadowverseEvolveGameId) - { - throw new ArgumentException("Deck retrieved was not a valid Shadowverse: Evolve deck."); - } + // They removed this field - what do we do here? - Matt J. + //if (naviDeck.GameId != ShadowverseEvolveGameId) + //{ + // throw new ArgumentException("Deck retrieved was not a valid Shadowverse: Evolve deck."); + //} Card leaderCard = null!; List mainCardResults = []; List evolveCardResults = []; var cards = _monitor.CurrentValue.Cards; - foreach (var lc in naviDeck.LeaderDeck) + foreach (var lc in naviDeck.LeaderCard) { var matching = cards.Where(c => c.CardId.Equals(lc.CardNumber, StringComparison.InvariantCultureIgnoreCase)); if (matching.Any()) @@ -70,7 +71,7 @@ public class DeckService(IOptionsMonitor cardList, IHttpClientF return new DeckList { - Name = naviDeck.Title, + Name = naviDeck.Name, DeckCode = code, LeaderCard = leaderCard, MainCards = mainCardResults, From 6571ad326fa9c92788081530e9bcc139f206921c Mon Sep 17 00:00:00 2001 From: Matt Jones Date: Thu, 23 Jul 2026 01:01:45 +0100 Subject: [PATCH 2/2] Fix leader card access. --- Services/DeckService.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Services/DeckService.cs b/Services/DeckService.cs index 54fa07c..097eec8 100644 --- a/Services/DeckService.cs +++ b/Services/DeckService.cs @@ -32,13 +32,10 @@ public class DeckService(IOptionsMonitor cardList, IHttpClientF List evolveCardResults = []; var cards = _monitor.CurrentValue.Cards; - foreach (var lc in naviDeck.LeaderCard) + var matching = cards.Where(c => c.CardId.Equals(naviDeck.LeaderCard.CardNumber, StringComparison.InvariantCultureIgnoreCase)); + if (matching.Any()) { - var matching = cards.Where(c => c.CardId.Equals(lc.CardNumber, StringComparison.InvariantCultureIgnoreCase)); - if (matching.Any()) - { - leaderCard = matching.First(); - } + leaderCard = matching.First(); } foreach (var mc in naviDeck.MainDeck) @@ -114,8 +111,8 @@ public class DeckService(IOptionsMonitor cardList, IHttpClientF var distinctMain = list.MainCards.DistinctBy(card => card.CardId); var textMain = distinctMain.Select(card => { - return new TextualCard - { + return new TextualCard + { CardText = $"{card.Name} ({card.CardId}) x{list.MainCards.Count(c => c.CardId == card.CardId)}" }; });