namespace MyOffice.Data.Repositories.Currency; using Models.Currencies; public interface ICurrencyRateRepository { List GetLastRates(Guid currencyId, DateTime? before = null, int count = 1); Task> GetLastRatesAsync(Guid currencyId, DateTime? before = null, int count = 1, CancellationToken cancellationToken = default); Dictionary GetLastRates(Guid userId, List currencyIds, DateTime? before = null); Task> GetLastRatesAsync( Guid userId, List currencyIds, DateTime? before = null, CancellationToken cancellationToken = default); bool AddRate(CurrencyRate currencyRate); Task AddRateAsync(CurrencyRate currencyRate, CancellationToken cancellationToken = default); List GetAtDate(Guid currencyId, DateTime date); Task> GetAtDateAsync(Guid currencyId, DateTime date, CancellationToken cancellationToken = default); }