Deck list work

This commit is contained in:
gamer147
2026-05-23 19:57:34 -04:00
parent 66184b3685
commit d3b2970e11
41 changed files with 70683 additions and 81 deletions

View File

@@ -28,6 +28,27 @@ public class DeckRepository : IDeckRepository
?? new List<ShadowverseDeckEntry>();
}
public async Task<Dictionary<Format, List<ShadowverseDeckEntry>>> GetDecksByFormats(long viewerId, IEnumerable<Format> formats)
{
var requested = formats.ToHashSet();
var viewer = await _dbContext.Viewers
.AsNoTracking()
.Include(v => v.Decks).ThenInclude(d => d.Class)
.Include(v => v.Decks).ThenInclude(d => d.Sleeve)
.Include(v => v.Decks).ThenInclude(d => d.LeaderSkin)
.FirstOrDefaultAsync(v => v.Id == viewerId);
// Seed every requested format with an empty list so callers iterate without null checks.
var result = requested.ToDictionary(f => f, _ => new List<ShadowverseDeckEntry>());
if (viewer is null) return result;
foreach (var deck in viewer.Decks.Where(d => requested.Contains(d.Format)).OrderBy(d => d.Number))
{
result[deck.Format].Add(deck);
}
return result;
}
public async Task<ShadowverseDeckEntry?> GetDeck(long viewerId, Format format, int deckNo)
{
var viewer = await _dbContext.Viewers