Beispiel #1
0
        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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
        }