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)); } }
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); } }
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)); } } }
public override string Decrypt(string value) { string decrypted; if (NextInChain == null) { decrypted = value; } else { decrypted = NextInChain.Decrypt(value); } if (Encrypt(decrypted) == value) { return(decrypted); } else { Encrypt(decrypted); throw new ArgumentException(); } }