namespace MyOffice.Data.Repositories.Currency; using Microsoft.EntityFrameworkCore; using Models.Currencies; using MyOffice.Data.Repositories; using MyOffice.DbContext; public class CurrencyRepository : AppRepository, ICurrencyRepository { public CurrencyRepository(AppDbContext context) : base(context) { } public List GetAll(Guid userId) { return _context.Currencies .Include(x => x.CurrencyGlobal) .Where(x => x.UserId == userId) .ToList(); } public async Task> GetAllAsync(Guid userId, CancellationToken cancellationToken = default) { return await _context.Currencies .Include(x => x.CurrencyGlobal) .Where(x => x.UserId == userId) .ToListAsync(cancellationToken); } public Currency? Get(Guid userId, Guid id) { return _context .Currencies .Include(x => x.CurrencyGlobal) .FirstOrDefault(x => x.Id == id && x.UserId == userId); } public async Task GetAsync(Guid userId, Guid id, CancellationToken cancellationToken = default) { return await _context .Currencies .Include(x => x.CurrencyGlobal) .FirstOrDefaultAsync(x => x.Id == id && x.UserId == userId, cancellationToken); } public Currency? GetByGlobalCurrency(Guid userId, string globalCurrencyId) { return _context.Currencies.FirstOrDefault(x => x.UserId == userId && x.CurrencyGlobalId == globalCurrencyId); } public async Task GetByGlobalCurrencyAsync( Guid userId, string globalCurrencyId, CancellationToken cancellationToken = default) { return await _context.Currencies.FirstOrDefaultAsync( x => x.UserId == userId && x.CurrencyGlobalId == globalCurrencyId, cancellationToken); } public bool Add(Currency currency) { return AddBase(currency) > 0; } public async Task AddAsync(Currency currency, CancellationToken cancellationToken = default) { return await AddBaseAsync(currency, cancellationToken) > 0; } public bool Update(Currency currency) { return UpdateBase(currency) > 0; } public async Task UpdateAsync(Currency currency, CancellationToken cancellationToken = default) { return await UpdateBaseAsync(currency, cancellationToken) > 0; } public bool Remove(Currency currency) { return RemoveBase(currency) > 0; } public async Task RemoveAsync(Currency currency, CancellationToken cancellationToken = default) { return await RemoveBaseAsync(currency, cancellationToken) > 0; } public List GetPrimaries(Guid userId) { return _context.Currencies.Where(x => x.UserId == userId && x.IsPrimary).ToList(); } public async Task> GetPrimariesAsync(Guid userId, CancellationToken cancellationToken = default) { return await _context.Currencies .Where(x => x.UserId == userId && x.IsPrimary) .ToListAsync(cancellationToken); } }