Beispiel #1
0
        /// <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("この運行状況はサポートされていません。");
            }
        }
Beispiel #2
0
            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));
                }
            }