Beispiel #1
0
        /// <summary>
        /// H5线程
        /// </summary>
        /// <param name="reconnect"></param>
        private void ThreadH5Connect(bool reconnect)
        {
            if (AddInUtility.H5)
            {
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(this.addInContainer.Language.ToString());
                ShowMsg(Properties.Resources.InitH5Message);

                try
                {
                    IH5Adapter h5 = this.communication.DBFactory.GetH5Data();
                    PerformStep();
                }
                catch (H5Exception exp)
                {
                    string noteInfo = Properties.Resources.InitH5Fail + "\r\n(" + exp.ToString() + ")";
                    ShowMsg(noteInfo);
                    return;
                }

                ShowMsg(Properties.Resources.InitH5OK);

                Thread.Sleep(1000);
                PerformStep();
            }

            if (!reconnect) //第一次
            {
                ThreadStart ts = new ThreadStart(ThreadT2Connect);
                Thread      t  = new Thread(ts);
                t.Start();
            }
            else
            {
                FinishStep();
            }
        }
Beispiel #2
0
        /// <summary>
        /// 初始化H5数据
        /// </summary>
        private void InitH5()
        {
            if (!AddInUtility.H5)
            {
                return;
            }
            new Thread(delegate()
            {
                try
                {
                    List <int> marketTypes     = new List <int>();
                    XmlDocument xmlDocument    = new XmlDocument();
                    XmlReaderSettings settings = new XmlReaderSettings();
                    settings.IgnoreComments    = true;
                    XmlReader xmlReader        = XmlReader.Create("h5sdk.xml", settings);
                    xmlDocument.Load(xmlReader);
                    foreach (XmlNode xmlNode in xmlDocument.DocumentElement.ChildNodes)
                    {
                        foreach (XmlAttribute xmlAttribute in xmlNode.Attributes)
                        {
                            if (xmlAttribute.Name == "mkttype")
                            {
                                marketTypes.Add(Int32.Parse(xmlAttribute.Value.Substring(2, xmlAttribute.Value.Length - 2), NumberStyles.HexNumber));
                            }
                        }
                    }
                    IH5Adapter h5Adapter = this.communication.DBFactory.GetH5Data();
                    if (null == h5Adapter)
                    {
                        return;
                    }
                    else
                    {
                        ISQLiteDataHandler sqlDataHandler = new SQLiteDataHandler(Path.Combine(Application.StartupPath, "Quotation.db3"), "12345678");
                        string cmdText = "Delete From SecurityCollection";
                        sqlDataHandler.ExecuteNonQuery(cmdText);
                        SQLiteParameter[] parameters = new SQLiteParameter[0];

                        List <string> batchSqls = new List <string>();
                        foreach (int marketType in marketTypes)
                        {
                            int errno = 0;
                            IMarketOverview mktOverview = h5Adapter.GetSupportMarketInfo(marketType, 2000, ref errno, false);
                            int totalCount = mktOverview.TotalCount;
                            for (int stockIndex = 0; stockIndex < totalCount; stockIndex++)
                            {
                                IStockInitInfo stockInitInfo = mktOverview.GetStockInitInfo(stockIndex);
                                string insertSql             = "Insert Into SecurityCollection Values( '" + stockInitInfo.StockCode + "', '" +
                                                               stockInitInfo.StockName + "', " +
                                                               Convert.ToString(stockInitInfo.MarketType) + ", " +
                                                               Convert.ToString(stockInitInfo.CodeType) + ", " +
                                                               Convert.ToString(stockInitInfo.StockStatus) + " )";
                                batchSqls.Add(insertSql);
                            }
                        }

                        sqlDataHandler.ExecuteBatchNonQuery(batchSqls);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }).Start();
        }