Ejemplo n.º 1
0
 public void FetchStockList(IProgress <double> progress)
 {
     lock (lockObject)
     {
         try
         {
             DataCollector   dataCollector = new DataCollector();
             string          rawStockList  = dataCollector.GetHttpResponse(SystemSetting.stockListUrl, false).Result;
             List <string[]> lstStock      = dataCollector.GetStockList(rawStockList); //dataCollector.GetStockList(rawStockList, SystemSetting.stockListMatchPattern);
             int             dataCount     = lstStock.Count;
             DatabaseHelper.ClearTable("stockList");
             int i = 0;
             DatabaseHelper.OptimizationBegin();
             foreach (string[] stock in lstStock)
             {
                 DatabaseHelper.UpdateStockList(stock[0], stock[1]);
                 i++;
                 progress.Report(100.0 * i / dataCount);
             }
             DatabaseHelper.OptimizationEnd();
         }
         catch (Exception ex)
         {
             SystemSetting.LogAndDisplayError(ex, "MainForm.cs, line 117");
         }
     }
 }
Ejemplo n.º 2
0
        public string HttpRequestWithRetryTimes(string url, int retryCount)
        {
            var dataCollector = new DataCollector();
            var rawTopTenShareHolder
                = DataCollector.JsonEscape(dataCollector.GetHttpResponse(url, false).Result);

            if (retryCount < 0 || rawTopTenShareHolder != "!!error!!")
            {
                return(rawTopTenShareHolder);
            }

            Thread.Sleep(1000);
            return(HttpRequestWithRetryTimes(url, --retryCount));
        }
Ejemplo n.º 3
0
 public void FetchFinanceReportProgress(IProgress <double> progress)
 {
     lock (lockObject)
     {
         try
         {
             int dataCount = DatabaseHelper.Get006030StockRecordCount("stockList");
             var reader    = DatabaseHelper.GetAll006030StockRecords("stockList");
             int i         = 0;
             while (reader.Read())
             {
                 string stockCode = reader[1].ToString();
                 try
                 {
                     i++;
                     DataCollector dataCollector      = new DataCollector();
                     string        rawFinantialReport = DataCollector.JsonEscape(dataCollector.GetHttpResponse(SystemSetting.rootUrlOfFinancialReport + stockCode, false).Result);
                     Console.WriteLine($"{i}:{stockCode} --- {rawFinantialReport}");
                     Dictionary <string, string>[] package = FinancialReportJsonParser.FromJson(rawFinantialReport);
                     foreach (Dictionary <string, string> report in package)
                     {
                         DatabaseHelper.UpdateFinancialReport(stockCode, report);
                     }
                     progress.Report(100.0 * i / dataCount);
                 }
                 catch (Exception ex0)
                 {
                     SystemSetting.LogAndDisplayError(ex0, $"{stockCode} MainForm.cs, line 169");
                 }
             }
         }
         catch (Exception ex)
         {
             SystemSetting.LogAndDisplayError(ex, "MainForm.cs, line 178");
         }
     }
 }