/// <summary> /// <see cref="TrainData.TrainConditions"/> の日本語名を取得します。 /// </summary> /// <param name="trainConditions">取得対象の運行状況。</param> /// <returns>列車状況を表す文字列。</returns> /// <exception cref="NotSupportedException">運行状況がサポートされない場合にスローされる例外。</exception> public static string GetName(this TrainData.TrainConditions trainConditions) { switch (trainConditions) { case TrainData.TrainConditions.OutsideArea: return("表示区間外"); case TrainData.TrainConditions.NotDeparted: case TrainData.TrainConditions.NotDepartedArrive: return("出発前"); case TrainData.TrainConditions.OnSchedule: return("通常運行"); case TrainData.TrainConditions.Delayed: return("列車遅延"); case TrainData.TrainConditions.PartiallySuspended: return("部分運休"); case TrainData.TrainConditions.Suspended: return("運休"); default: throw new NotSupportedException("この運行状況はサポートされていません。"); } }
public static TrainData.TrainCondition GetTrainCondition(TrainData.TrainConditions conditions, string suspendRange, string delayText) { var range = string.IsNullOrEmpty(suspendRange) ? null : SuspendRangeParser(suspendRange); if (!string.IsNullOrEmpty(delayText) && !delayText.StartsWith("始発駅の出発が遅れます") && !delayText.StartsWith("(")) { delayText = delayText.GetRangeWithEnd('('); (var max, var min) = DelayTimeParser(delayText); return(new TrainData.TrainCondition(conditions, max, min)); } else { return(new TrainData.TrainCondition(conditions, range)); } }