/// <summary> /// <see cref="TrainData.ArrivalTypes"/>の日本語名を取得します。 /// </summary> /// <param name="arrivalTypes"></param> /// <returns></returns> public static string GetName(this TrainData.ArrivalTypes arrivalTypes) { switch (arrivalTypes) { case TrainData.ArrivalTypes.Arrival: return("出発"); case TrainData.ArrivalTypes.Departure: return("到着"); case TrainData.ArrivalTypes.Through: return("通過"); default: throw new NotSupportedException(); } }
public static TrainData ParseTrainData(RawTrainData rawTrainData, int getedHour, Station station, TrainData.ArrivalTypes arrivalTypes) { try { var name = TrainNameParser.GetTrainName(rawTrainData.TrainName, rawTrainData.TrainType); var time = TrainTimeParser.GetTrainTime(rawTrainData.Time, getedHour); var destination = TrainDestParser.GetTrainDestination(rawTrainData.Destination); var condition = TrainConditionParser.GetTrainCondition((TrainData.TrainConditions)rawTrainData.Status, rawTrainData.Addition, rawTrainData.NowPosition); var nowPosition = TrainPositionTextParser.GetTrainPosition(rawTrainData.NowPosition); return(new TrainData(name, time, station, arrivalTypes, destination, condition, nowPosition)); } catch (Exception ex) { throw new TrainDataParseException(rawTrainData, "列車データのパースに失敗しました", ex); } }