Exemple #1
0
        /// <summary>
        /// 加载所有的列车
        /// </summary>
        /// <returns></returns>
        public static bool LoadTheAllTrain(string date, Action <int, int> action, Action <string> msgAction)
        {
            try
            {
                //从文件中加载,可以加载所有的站点
                //var sns = LoadStationNames();
                //从DB中加载,仅加载大部分城市
                var sns = StationEntityServer.GetStations().ToArray();

                List <string> trainNos = GetAllTrains();
                var           random   = new Random();
                var           total    = sns.Length * sns.Length;

                for (var i = 0; i < sns.Length; ++i)
                {
                    for (var j = 0; j < sns.Length; ++j)
                    {
                        if (!IsContinue)
                        {
                            return(true);
                        }

                        action(i * sns.Length + j, total);
                        if (sns[i].SC != sns[j].SC)
                        {
                            msgAction(string.Format("开始获取{0}——{1}", sns[i].SC, sns[j].SC));
                            try
                            {
                                var b = LoadTrain(sns[i].SC, sns[j].SC, date, trainNos);
                                if (b)
                                {
                                    msgAction(string.Format("获取{0}——{1}成功!!!", sns[i].SC, sns[j].SC));
                                }
                            }
                            catch (Exception e)
                            {
                                msgAction(string.Format("获取{0}——{1}失败【{2}】", sns[i].SC, sns[j].SC, e.Message));
                                //HtmlHelp.SaveTxtFile("Error.txt", e.Message, true);
                                //return false;
                            }
                            Thread.Sleep(random.Next(2, 5) * 1000);
                        }
                        else
                        {
                            msgAction(string.Format("跳过{0}——{1}", sns[i].SC, sns[j].SC));
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                msgAction(ex.Message + "\r\n" + ex.StackTrace);
                return(false);
            }
        }
Exemple #2
0
 /// <summary>
 /// 保存站点名称到DB
 /// </summary>
 /// <param name="stations"></param>
 public static void SaveStationNames(StationEntity[] stations)
 {
     StationEntityServer.InsertStationNames(stations);
 }