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