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));
         }
     }
 }
Beispiel #5
0
        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();
            }
        }