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;
     }
 }
示例#2
0
        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;
            }
        }