private void UpdateTables(RefreshEventArgs e)
        {
            string msg = String.Format("{0} refreshed portfolio:", Name);

            if (e.PositionsUpdated)
            {
                UpdatePositions(m_monitorUtilities.GetCurrentPositionsForAccount(AccountName));
                msg += String.Format(" {0} positions,", m_portfolio.Count);
            }

            if (e.IndexWeightsUpdated)
            {
                UpdateIndices(m_monitorUtilities.GetIndexWeightsForAccount(AccountName));
                msg += " index weights,";
            }

            if (e.AccountsUpdated)
            {
                m_accountData = m_monitorUtilities.GetDataForAccount(AccountName);
                if (m_accountData != null)
                {
                    UpdateBenchmark(BenchmarkSymbol, m_accountData.IndexFlag ? QuoteType.Index : QuoteType.Stock);
                    msg += " account info,";
                }
            }

            if (e.TradesUpdated)
            {
                m_trades          = m_monitorUtilities.GetTradesForAccount(AccountName);
                DividendsReceived = -m_trades.Where(x => x.TradeType == "RecDiv").Sum(x => x.Change_in_Cost);
                msg += String.Format(" {0} trades,", NumberOfTrades);
            }

            if (e.SnapshotIdsUpdated)
            {
                m_snapshotIds = m_monitorUtilities.GetSnapshotsForAccount(AccountName);
                msg          += " snapshots";
            }

            PositionMonitorUtilities.Debug(msg);
            if (m_refreshEventHandler != null)
            {
                m_refreshEventHandler(this, new EventArgs());
            }
        }