/// <summary> /// 从DB中获取所有列车的车次 /// </summary> /// <returns></returns> public static List <string> GetAllTrains() { var result = (from q in TrainEntityServer.GetAllTrainNames().AsEnumerable() select q.Field <string>("TrainNumber")).ToList(); return(result); }
/// <summary> /// 加载指定地方的列车 /// </summary> /// <param name="startCode"></param> /// <param name="endCode"></param> /// <param name="date"></param> /// <returns></returns> public static bool LoadTrain(string startCode, string endCode, string date, List <string> trainNos) { if (trainNos == null) { trainNos = GetAllTrains(); } //这里只需要按城市获取就可以,因为上海-贵港,跟上海南-贵港是一样的 var qs = QueryTrain(startCode, endCode, date); foreach (var q in qs.Data.Result) { var qtr = GetQueryTrainResult(q); if (QueryTrainResultServer.ExistsQueryTrainResult(qtr.TrainNumber, qtr.QueryStartCode, qtr.QueryEndCode)) { continue; } //保存到数据库 QueryTrainResultServer.InsertQueryTrainResult(qtr); //如果该车次还没有获取过则获取车次信息和路由 //因为通过获取的路由和车次的信息都是完整的,所以不需要重新获取 //比如获取一个上海-贵港,T81就获取完毕了,没必要在获取上海-南宁时再插入数据 if (!trainNos.Contains(qtr.TrainNumber)) { trainNos.Add(qtr.TrainNumber); var routeResult = QueryTrainRoute(qtr.TrainNo, qtr.StartCode, qtr.EndCode, date); //保存到数据库 foreach (var r in routeResult.Data.Data) { r.TrainNumber = qtr.TrainNumber; TrainRouteServer.InsertTrainRoute(r); } //列车也保存到数据库 var train = new TrainEntity() { TrainNumber = qtr.TrainNumber, StartStation = qtr.StartCode, EndStation = qtr.EndCode }; if (routeResult.Data.Data.Length > 0) { train.GoTime = routeResult.Data.Data[0].StartTime; train.ComeTime = routeResult.Data.Data[routeResult.Data.Data.Length - 1].ArriveTime; } TrainEntityServer.InsertTrain(train); } } return(true); }