static IEnumerable <Route> ServeRequest(Request request)
        {
            (IGraphDatabase cars, IGraphDatabase trains) = MockData.InitDatabases();

            //if (!ValidateRequest(request))
            //    return null;

            FilteredDatabase database = new FilteredDatabase(new MergedDatabase(cars, trains), request.Filter);

            IRequestServer server = new RequestValidator(
                new CostServer(
                    new TimeServer(
                        new BFSServer(
                            new DFSServer(
                                new DijkstraServer())))));

            return(server.Solve(request, null, database));

            //if (request.Problem == "Cost")
            //{
            //    var problem = new CostProblem(request.From, request.To);
            //    problem.Graph = database;
            //    return problem.Solve(request.Solver);
            //}
            //if (request.Problem == "Time")
            //{
            //    var problem = new TimeProblem(request.From, request.To);
            //    problem.Graph = database;
            //    return problem.Solve(request.Solver);
            //}
            //throw new ArgumentException();
        }