private FavouriteData GetStcokData(string iNumber)
    {
        FavouriteData aTmpData = new FavouriteData();

        using (WebClient aWC = new WebClient())
        {
            string aUrl = "http://www.mobiledaddy.net/StockWeb/Model/GetStockData.aspx?Number=" + iNumber;

            string aJsonStr = aWC.DownloadString(aUrl);

            if (aJsonStr == "")
            {
                return(null);
            }

            //0.代碼 1.時間(不需要) 2.成交價 3.買進價 4.賣出價 5.漲跌 6.張數 7.昨收 8.開盤 9.最高 10.最低
            StockData aJsonData = JsonConvert.DeserializeObject <StockData>(aJsonStr);

            aTmpData.NowPrice       = aJsonData.StockValue[2];
            aTmpData.RangePrice     = aJsonData.StockValue[5];
            aTmpData.StockName      = aJsonData.StockValue[0];
            aTmpData.YesterdayPrice = aJsonData.StockValue[7];
            aWC.Dispose();
        }

        return(aTmpData);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpCookie aCookieAC = Request.Cookies["Account"];

        string aAccount = aCookieAC.Value;

        if (aAccount == null)
        {
            return;
        }

        List <FavouriteData> aData = new List <FavouriteData>();

        string[] aAllFavourite = GetFavourite(aAccount);

        if (aAllFavourite.Length <= 0)
        {
            return;
        }

        SqlConnection aCon = new SqlConnection("Data Source = 184.168.47.10; Integrated Security = False; User ID = MobileDaddy; PASSWORD = Aa54380438!; Connect Timeout = 15; Encrypt = False; Packet Size = 4096 ;");

        aCon.Open();
        string aSQLStr = "";

        for (int i = 0; i < aAllFavourite.Length; i++)
        {
            aSQLStr = string.Format("SELECT * FROM StockList WHERE StockNumber='{0}'", aAllFavourite[i]);

            using (SqlCommand aCmd = new SqlCommand(aSQLStr, aCon))
            {
                SqlDataReader aRd      = aCmd.ExecuteReader();
                bool          aFind    = false;
                FavouriteData aTmpData = new FavouriteData();
                while (aRd.Read())
                {
                    aTmpData.NowPrice       = aRd["DealPrice"].ToString().Replace(" ", "");
                    aTmpData.RangePrice     = aRd["PriceRange"].ToString().Replace(" ", "");
                    aTmpData.StockName      = aRd["StockName"].ToString().Replace(" ", "");
                    aTmpData.YesterdayPrice = aRd["Yesterday"].ToString().Replace(" ", "");
                    aFind = true;
                }
                aRd.Close();
                //代表SQL表單內還沒有這單號
                if (aFind == false)
                {
                    aTmpData = GetStcokData(aAllFavourite[i]);
                }
                aData.Add(aTmpData);
            }
        }

        //for (int i = 0; i < aAllFavourite.Length; i++)
        //{
        //    if (aAllFavourite[i] == "")
        //        continue;

        //    using (WebClient aWC = new WebClient())
        //    {
        //        string aUrl = "http://www.mobiledaddy.net/StockWeb/Model/GetStockData.aspx?Number=" + aAllFavourite[i];

        //        string aJsonStr = aWC.DownloadString(aUrl);

        //        if (aJsonStr == "")
        //            break;

        //        //0.代碼 1.時間(不需要) 2.成交價 3.買進價 4.賣出價 5.漲跌 6.張數 7.昨收 8.開盤 9.最高 10.最低
        //        StockData aJsonData = JsonConvert.DeserializeObject<StockData>(aJsonStr);

        //        FavouriteData aTmpData = new FavouriteData();

        //        aTmpData.NowPrice = aJsonData.StockValue[2];
        //        aTmpData.RangePrice = aJsonData.StockValue[5];
        //        aTmpData.StockName = aJsonData.StockValue[0];
        //        aTmpData.YesterdayPrice = aJsonData.StockValue[7];

        //        aData.Add(aTmpData);
        //        aWC.Dispose();
        //    }
        //}
        AllFavourite aAllData = new AllFavourite();

        aAllData.total = aData.Count;
        aAllData.rows  = aData.ToArray();

        string aJson = JsonConvert.SerializeObject(aAllData);

        aCon.Close();

        Response.Write(aJson);
    }
        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            if (bus11checkBox.IsChecked == true)
            {
                List <string> list1 = new List <string>();
                if (checkBox11_1.IsChecked == true)
                {
                    list1.Add(checkBox11_1.Content.ToString());
                }
                if (checkBox11_2.IsChecked == true)
                {
                    list1.Add(checkBox11_2.Content.ToString());
                }
                if (checkBox11_3.IsChecked == true)
                {
                    list1.Add(checkBox11_3.Content.ToString());
                }
                if (checkBox11_4.IsChecked == true)
                {
                    list1.Add(checkBox11_4.Content.ToString());
                }
                if (checkBox11_5.IsChecked == true)
                {
                    list1.Add(checkBox11_5.Content.ToString());
                }

                if (list1.Count == 0)
                {
                    MessageBox.Show("You can't choose a bus without stops!");
                    return;
                }
                FavouriteData fav1 = new FavouriteData
                {
                    Bus            = Routes.First(route => route.Name == "11"),
                    FavouriteStops = list1
                };
                FavRoutes.Add(fav1);
            }

            if (bus23checkBox.IsChecked == true)
            {
                List <string> list2 = new List <string>();
                if (checkBox23_1.IsChecked == true)
                {
                    list2.Add(checkBox23_1.Content.ToString());
                }
                if (checkBox23_2.IsChecked == true)
                {
                    list2.Add(checkBox23_2.Content.ToString());
                }
                if (checkBox23_3.IsChecked == true)
                {
                    list2.Add(checkBox23_3.Content.ToString());
                }
                if (checkBox23_4.IsChecked == true)
                {
                    list2.Add(checkBox23_4.Content.ToString());
                }
                if (checkBox23_5.IsChecked == true)
                {
                    list2.Add(checkBox23_5.Content.ToString());
                }
                if (list2.Count == 0)
                {
                    MessageBox.Show("You can't choose a bus without stops!");
                    return;
                }
                FavouriteData fav2 = new FavouriteData
                {
                    Bus            = Routes.First(route => route.Name == "23"),
                    FavouriteStops = list2
                };
                FavRoutes.Add(fav2);
            }

            if (bus605checkBox.IsChecked == true)
            {
                List <string> list3 = new List <string>();
                if (checkBox605_1.IsChecked == true)
                {
                    list3.Add(checkBox605_1.Content.ToString());
                }
                if (checkBox605_2.IsChecked == true)
                {
                    list3.Add(checkBox605_2.Content.ToString());
                }
                if (checkBox605_3.IsChecked == true)
                {
                    list3.Add(checkBox605_3.Content.ToString());
                }
                if (checkBox605_4.IsChecked == true)
                {
                    list3.Add(checkBox605_4.Content.ToString());
                }
                if (checkBox605_5.IsChecked == true)
                {
                    list3.Add(checkBox605_5.Content.ToString());
                }
                if (checkBox605_6.IsChecked == true)
                {
                    list3.Add(checkBox605_6.Content.ToString());
                }
                if (checkBox605_7.IsChecked == true)
                {
                    list3.Add(checkBox605_7.Content.ToString());
                }
                if (list3.Count == 0)
                {
                    MessageBox.Show("You can't choose a bus without stops!");
                    return;
                }
                FavouriteData fav3 = new FavouriteData
                {
                    Bus            = Routes.First(route => route.Name == "605"),
                    FavouriteStops = list3
                };
                FavRoutes.Add(fav3);
            }

            if (bus98checkBox.IsChecked == true)
            {
                List <string> list4 = new List <string>();
                if (checkBox98_1.IsChecked == true)
                {
                    list4.Add(checkBox98_1.Content.ToString());
                }
                if (checkBox98_2.IsChecked == true)
                {
                    list4.Add(checkBox98_2.Content.ToString());
                }
                if (checkBox98_3.IsChecked == true)
                {
                    list4.Add(checkBox98_3.Content.ToString());
                }
                if (checkBox98_4.IsChecked == true)
                {
                    list4.Add(checkBox98_4.Content.ToString());
                }
                if (checkBox98_5.IsChecked == true)
                {
                    list4.Add(checkBox98_5.Content.ToString());
                }
                if (checkBox98_6.IsChecked == true)
                {
                    list4.Add(checkBox98_6.Content.ToString());
                }
                if (list4.Count == 0)
                {
                    MessageBox.Show("You can't choose a bus without stops!");
                    return;
                }

                FavouriteData fav4 = new FavouriteData
                {
                    Bus            = Routes.First(route => route.Name == "98"),
                    FavouriteStops = list4
                };
                FavRoutes.Add(fav4);
                var y = list4;
            }
            if (FavRoutes.Count == 0)
            {
                MessageBox.Show("Please choose your favourite routes!");
                return;
            }
            NewFavs?.Invoke(FavRoutes);
            DialogResult = false;
        }