コード例 #1
0
 /// <summary>
 /// 將JSON格式的資料轉換為列車到站時間資訊物件
 /// </summary>
 /// <param name="json">資料來源</param>
 /// <param name="date">日期</param>
 /// <returns>列車到站時間資訊物件</returns>
 internal static TrainTimeInfo Parse(JObject json , DateTime date) {
     TrainTimeInfo result = new TrainTimeInfo();
     result._Station = int.Parse(json["Station"].Value<string>());
     result.Departure = date.Date + TimeSpan.Parse(json["DepTime"].Value<string>());
     result.Arrival = date.Date + TimeSpan.Parse(json["ArrTime"].Value<string>());
     return result;
 }
コード例 #2
0
        /// <summary>
        /// 將JSON格式的資料轉換為列車到站時間資訊物件
        /// </summary>
        /// <param name="json">資料來源</param>
        /// <param name="date">日期</param>
        /// <returns>列車到站時間資訊物件</returns>
        internal static TrainTimeInfo Parse(JObject json, DateTime date)
        {
            TrainTimeInfo result = new TrainTimeInfo();

            result._Station  = int.Parse(json["Station"].Value <string>());
            result.Departure = date.Date + TimeSpan.Parse(json["DepTime"].Value <string>());
            result.Arrival   = date.Date + TimeSpan.Parse(json["ArrTime"].Value <string>());
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// 自JSON資料轉換為列車資訊物件
        /// </summary>
        /// <param name="json">資料來源</param>
        /// <param name="date">日期</param>
        /// <returns>列車資訊物件</returns>
        internal static Train Parse(JObject json, DateTime date)
        {
            Train result = new Train();

            result.Id             = int.Parse(json["Train"].Value <string>());
            result.Level          = TrainLevelsConverter.Convert(int.Parse(json["CarClass"].Value <string>()));
            result.Type           = (TrainTypes)int.Parse("0" + json["Type"].Value <string>());
            result.Line           = (TrainLines)int.Parse("0" + json["Route"].Value <string>());
            result.Direction      = (TrainDirection)int.Parse("0" + json["LineDir"].Value <string>());
            result.IsOverNightStn = json["OverNightStn"].Value <string>() != "0";
            result.HasCripple     = json["Cripple"].Value <string>() == "Y";
            result.CanPackage     = json["Package"].Value <string>() == "Y";
            result.HasDinning     = json["Dinning"].Value <string>() == "Y";
            result.HasBreastFeed  = json["BreastFeed"].Value <string>() == "Y";
            result.Bike           = json["Bike"].Value <string>() == "Y";
            result.Note           = json["Note"].Value <string>();
            result.EnglishNote    = json["NoteEng"].Value <string>();

            var objectArray = json["TimeInfos"].Value <JArray>();

            List <TrainTimeInfo> infos = new List <TrainTimeInfo>();

            foreach (var item in objectArray)
            {
                var newItem = TrainTimeInfo.Parse(item.Value <JObject>(), date);
                if (result.IsOverNightStn && newItem.Arrival.Hour <= 12)
                {
                    newItem.Arrival   = newItem.Arrival.AddDays(1);
                    newItem.Departure = newItem.Departure.AddDays(1);
                }
                infos.Add(newItem);
            }
            result.StoppingAt = infos.ToArray();

            return(result);
        }