Files
SVSimServer/SVSim.Database/Repositories/Card/CardRepository.cs
2026-05-25 16:55:57 -04:00

34 lines
1.3 KiB
C#

using Microsoft.EntityFrameworkCore;
using SVSim.Database.Models;
namespace SVSim.Database.Repositories.Card;
public class CardRepository : BaseRepository<ShadowverseCardEntry>, ICardRepository
{
public CardRepository(SVSimDbContext dbContext) : base(dbContext)
{
}
public async Task<List<ShadowverseCardEntry>> GetAll(bool onlyCollectible)
{
var cards = await DbSet.AsNoTracking().Where(card => !onlyCollectible || card.CollectionInfo != null).ToListAsync();
return cards;
}
public async Task<List<ShadowverseCardEntry>> GetDefaultCards()
{
// The set of cards every viewer is treated as owning 3-of from the start: bronze,
// non-foil basics. Silver/gold basics and animated (foil) variants are earned
// through story rewards etc.
return await DbContext.Set<ShadowverseCardSetEntry>().Where(set => set.IsBasic)
.SelectMany(set => set.Cards)
.Where(card => card.Rarity == Enums.Rarity.Bronze && !card.IsFoil)
.ToListAsync();
}
public async Task<List<ShadowverseCardSetEntry>> GetCardSets(bool onlyInRotation)
{
return await DbContext.Set<ShadowverseCardSetEntry>().AsNoTracking()
.Where(set => !onlyInRotation || set.IsInRotation).ToListAsync();
}
}