/// <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; }
/// <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); }
/// <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); }