// Load stock list specified in the user's portfolio protected void LoadPortfolioStock() { StringCollection stockList = new StringCollection(); TreeNode node; data.baseDS.portfolioDataTable portfolioTbl = new data.baseDS.portfolioDataTable(); portfolioTbl.Clear(); myStockCodeTbl.Clear(); dataLibs.LoadPortfolioByInvestor(portfolioTbl, sysLibs.sysLoginCode, AppTypes.PortfolioTypes.Portfolio); stockTV.Nodes.Clear(); DataView myStockView = new DataView(myStockCodeTbl); data.baseDS.stockCodeRow stockRow; myStockView.Sort = myStockCodeTbl.codeColumn.ColumnName; StringCollection list = new StringCollection(); for (int idx1 = 0; idx1 < portfolioTbl.Count; idx1++) { node = stockTV.Nodes.Add(portfolioTbl[idx1].name); list.Clear(); list.Add(portfolioTbl[idx1].code); myStockCodeTbl.Clear(); if (portfolioTbl[idx1].type == (byte)AppTypes.PortfolioTypes.WatchList) { dataLibs.LoadStockCode_ByWatchList(myStockCodeTbl, list); } else { dataLibs.LoadStockCode_ByPortfolios(myStockCodeTbl, list); } stockList.Clear(); for (int idx2 = 0; idx2 < myStockView.Count; idx2++) { stockRow = (data.baseDS.stockCodeRow)myStockView[idx2].Row; //Ignore duplicate stocks if (stockList.Contains(stockRow.tickerCode)) { continue; } stockList.Add(stockRow.tickerCode); node.Nodes.Add(stockRow.tickerCode); } node.Text = node.Text + "(" + node.Nodes.Count.ToString() + ")"; node.ExpandAll(); } }