public RouteInfo PrepareRouteInfoFrom(Map map) { var mappedStations = _searchAlgorithm.FillShortestPath(map.Stations, _inputOption); var shortestPath = new List <Station>(); var end = mappedStations.First(a => a.IsSameAs(_inputOption.EndStation.StationName)); shortestPath.Add(end); BuildShortestPath(shortestPath, end); shortestPath.Reverse(); var start = mappedStations.First(a => a.IsSameAs(_inputOption.StartStation.StationName)); return(new RouteInfo(shortestPath, start, end)); }