Beispiel #1
0
 public override IEnumerable <Route> Solve(Request request, IRouteProblem problem, IGraphDatabase database)
 {
     if (problem == null)
     {
         return(null);
     }
     if (request.Solver == "Dijkstra")
     {
         if (request.Problem == "Cost")
         {
             return(problem.Solve(new DijkstraCost()));
         }
         else
         {
             return(problem.Solve(new DijkstraTime()));
         }
     }
     else
     {
         if (NextInChain == null)
         {
             return(null);
         }
         else
         {
             return(NextInChain.Solve(request, problem, database));
         }
     }
 }
 public override IEnumerable <Route> Solve(Request request, IRouteProblem problem, IGraphDatabase database)
 {
     if (NextInChain == null)
     {
         return(null);
     }
     if (request.Problem == "Time")
     {
         IRouteProblem newproblem = new TimeProblem(request.From, request.To);
         newproblem.Graph = database;
         return(NextInChain.Solve(request, newproblem, database));
     }
     else
     {
         return(NextInChain.Solve(request, problem, database));
     }
 }
Beispiel #3
0
 public override IEnumerable <Route> Solve(Request request, IRouteProblem problem, IGraphDatabase database)
 {
     if (request.From == null || request.From == "" ||
         request.To == null || request.To == "" ||
         request.Filter.MinPopulation < 0 ||
         request.Filter.AllowedVehicles.Count == 0)
     {
         return(null);
     }
     if (NextInChain != null)
     {
         return(NextInChain.Solve(request, problem, database));
     }
     else
     {
         return(null);
     }
 }
Beispiel #4
0
 public override IEnumerable <Route> Solve(Request request, IRouteProblem problem, IGraphDatabase database)
 {
     if (problem == null)
     {
         return(null);
     }
     if (request.Solver == "BFS")
     {
         return(problem.Solve(new BFS()));
     }
     else
     {
         if (NextInChain == null)
         {
             return(null);
         }
         else
         {
             return(NextInChain.Solve(request, problem, database));
         }
     }
 }