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