public AtmButtonControl(AtmButton atmButton) { InitializeComponent(); ButtonText0 = atmButton.Text0; ButtonText1 = atmButton.Text1; ButtonText2 = atmButton.Text2; ButtonText3 = atmButton.Text3; Text0Color = atmButton.Text0Color.ToString() != "#00000000" ? atmButton.Text0Color : Colors.White; Text1Color = atmButton.Text1Color.ToString() != "#00000000" ? atmButton.Text1Color : Colors.White; Text2Color = atmButton.Text2Color.ToString() != "#00000000" ? atmButton.Text2Color : Colors.White; Text3Color = atmButton.Text3Color.ToString() != "#00000000" ? atmButton.Text3Color : Colors.White; MainText.Text = atmButton.MainText; ImagePath = atmButton.ImagePath; Name = atmButton.Name + DateTime.Now.Ticks; ButtonImage.SetValue(NameProperty, Name); MainText.SetValue(NameProperty, Name); Text0.SetValue(NameProperty, Name); Text1.SetValue(NameProperty, Name); Text2.SetValue(NameProperty, Name); Text3.SetValue(NameProperty, Name); IsRightButton = atmButton.IsRightButton; if (IsRightButton) { ButtonGrid.HorizontalAlignment = HorizontalAlignment.Right; } }
public void UpdateStock(int Num) { try { List <Stock> stockList = new List <Stock>(); int nodes; //指定來源網頁 WebClient url = new WebClient(); //將網頁來源資料暫存到記憶體內 MemoryStream ms = new MemoryStream(url.DownloadData("https://www.google.com/finance/historical?q=TPE%3A" + Num + "&start=0&num=220")); //以GoogleFinance為範例 // 使用預設編碼讀入 HTML HtmlDocument doc = new HtmlDocument(); List <HtmlNode> tdNode; HtmlNode tempNode; string Text0; doc.Load(ms, Encoding.Default); Text0 = ((doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]").CssSelect("#gf-viewc").ToList())[0].CssSelect("h3").ToList())[0].InnerHtml.ToString(); tempNode = (doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]").CssSelect("#prices").ToList())[0]; tdNode = tempNode.CssSelect("td").ToList(); nodes = (tempNode.CssSelect("tr").Count()) / 2; // 取得股價 for (int num = 0; num < nodes; num++) { string Text1, Text2; Stock stock_temp = new Stock(); stock_temp.Id = Num; if (Text0.IndexOf("Co.") > 0) { stock_temp.stockName = Text0.Remove(Text0.IndexOf("Co.")).Trim(); } else { stock_temp.stockName = Text0.Trim(); } Text1 = tdNode[0 + 6 * num].InnerText; Text2 = tdNode[1 + 6 * num].InnerText; stock_temp.Price_Date = DateTime.Parse(Text(Text1, Text2)); Text1 = tdNode[1 + 6 * num].InnerText; Text2 = tdNode[2 + 6 * num].InnerText; stock_temp.Price_Open = Decimal.Parse(Text(Text1, Text2)); Text1 = tdNode[2 + 6 * num].InnerText; Text2 = tdNode[3 + 6 * num].InnerText; stock_temp.Price_High = Decimal.Parse(Text(Text1, Text2)); Text1 = tdNode[3 + 6 * num].InnerText; Text2 = tdNode[4 + 6 * num].InnerText; stock_temp.Price_Low = Decimal.Parse(Text(Text1, Text2)); Text1 = tdNode[4 + 6 * num].InnerText; Text2 = tdNode[5 + 6 * num].InnerText; stock_temp.Price_Close = Decimal.Parse(Text(Text1, Text2)); Text1 = tdNode[5 + 6 * num].InnerText; Text2 = tdNode[6 + 6 * num].InnerText; stock_temp.Volume = Int32.Parse(Text(Text1, Text2)); stockList.Add(stock_temp); } foreach (var item in stockList) { db.Stocks.Add(item); } db.SaveChanges(); //清除資料 doc = null; url = null; ms.Close(); } catch (System.IO.IOException e) { logger.Error(LogUtility.GetExceptionDetails(e)); return; } }