Обновите метод RedeemCode, чтобы успешно обновлять базу данных при использовании кода.
public void RedeemCode(Codes code, int userId)
{
using (var tx = _dbConnection.BeginTransaction())
{
UpdateUserBalance(code, userId);
tx.Commit();
}
}
private void UpdateUserBalance(Codes code, int userId)
{
var amount = code.Amount;
_dbConnection.Execute(@$"
UPDATE {nameof(User)}
SET {nameof(User.Balance)} = {nameof(User.Balance)} + @{nameof(amount)}
WHERE {nameof(User.Id)} = @{nameof(userId)}", new { userId, amount });
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ogic-flaws