public GoldReport(IDataSource dataSource)
        {
            _dataSource = dataSource ?? throw new ArgumentNullException(nameof(dataSource));

            _roster       = dataSource.GetRoster();
            _tariff       = dataSource.GetTariff();
            _transactions = dataSource.GetTransactionHistory();
            LastUpdated   = dataSource.GetLastUpdatedDate();

            Received         = CurrencyAmount.Zero;
            Refunded         = CurrencyAmount.Zero;
            SentToBanker     = CurrencyAmount.Zero;
            MailboxFees      = CurrencyAmount.Zero;
            PlayerReports    = Enumerable.Empty <PlayerReport>();
            _oddTransactions = new List <Transaction>();
            _refunds         = new List <Transaction>();
        }