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..097eec8 100644 --- a/Services/DeckService.cs +++ b/Services/DeckService.cs @@ -21,23 +21,21 @@ 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) + 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) @@ -70,7 +68,7 @@ public class DeckService(IOptionsMonitor cardList, IHttpClientF return new DeckList { - Name = naviDeck.Title, + Name = naviDeck.Name, DeckCode = code, LeaderCard = leaderCard, MainCards = mainCardResults, @@ -113,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)}" }; });