public static List <string> TransferOne(string startName, string endName) { List <string> result = new List <string>(); var dt = QueryTrainResultServer.StartsWithName(startName, endName); result.AddRange(dt.DataTableToList <QueryTrainResult>().Select(p => p.TrainNumber)); 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); }
public static List <string> TransferTwo(string startName, string endName) { List <string> result = new List <string>(); var startStations = QueryTrainResultServer.StartsWithNameByStart(startName).DataTableToList <QueryTrainResult>(); var endStations = QueryTrainResultServer.StartsWithNameByEnd(endName).DataTableToList <QueryTrainResult>(); foreach (var s in startStations) { foreach (var e in endStations) { if (s.QueryEndCode == e.QueryStartCode) { result.Add(string.Format("{0}({1},{2})——>{3}({4},{5})", s.TrainNumber, s.QueryStartCode, s.QueryEndCode, e.TrainNumber, e.QueryStartCode, e.QueryEndCode)); } } } return(result); }