/// <inheritdoc /> public async Task <List <Transaction> > Spend(int points, CancellationToken cancellationToken = default) { var transactions = await _dbContext.Transactions .Where(t => t.RemainingPoints != 0) .OrderBy(t => t.Timestamp) .ToListAsync(cancellationToken); var newTransactions = await SpendPoints(transactions, points, cancellationToken); _dbContext.AddRange(newTransactions); await _dbContext.SaveChangesAsync(cancellationToken); return(_mapper.Map <List <Transaction> >(newTransactions)); }
public RewardsServiceTests() { _mapper = new Mapper(AutoMapperHelper.ConfigureAutomapper()); var builder = new DbContextOptionsBuilder <RewardsDbContext>(); builder.UseInMemoryDatabase(databaseName: "Rewards"); var dbContextOptions = builder.Options; _rewardsDbContext = new RewardsDbContext(dbContextOptions); // Delete existing db before creating a new one _rewardsDbContext.Database.EnsureDeleted(); _rewardsDbContext.Database.EnsureCreated(); _rewardsDbContext.AddRange(mockTransactions); _rewardsDbContext.SaveChanges(); }