public bool Optimize() { var route = _routeRepository.GetAllRoutes().First(); bool improvementFound = false; int numberOfIterationsWithoutImprovement = 0; int numberOfIterations = 0; while (numberOfIterationsWithoutImprovement == 0 && numberOfIterations <= 3) { numberOfIterationsWithoutImprovement++; numberOfIterations++; for (int i = 0; i < route.Nodes.Count - 1; i++) { for (int j = 1; j < route.Nodes.Count; j++) { var cost = this.CalculateCost(route, i, j); if (cost < -0.0001) { numberOfIterationsWithoutImprovement = 0; improvementFound = true; var newOrder = this.GetNewOrder(route, i, j); route.UpdateRoute(newOrder, route.Cost + cost); break; } } } } return(improvementFound); }
public IList <RouteView> GetAllRoutes() { IList <RouteEntityView> route = _routeRepository.GetAllRoutes(); IList <RouteView> routeResponses = new List <RouteView>(); foreach (RouteEntityView routeEntity in route) { RouteView wagon = routeEntity.ToDomainView(); routeResponses.Add(wagon); } return(routeResponses); }
public RouteResponse[] GetAllRoutes() { // Extract user ID from token to use to filter routes. var userId = User.GetUserId(); // We may not have a user ID due to impersonation. Throw an exception. if (userId == null) { throw new AuthenticationException("Unable to determine user ID of current user."); } // We'll use our map function to map our internal Route objects to our RouteResponse wire format. return(_routeRepository.GetAllRoutes(userId).Select(RouteResponse.Map).ToArray()); }
public async Task WriteSolution() { var sb = new StringBuilder(); foreach (var route in _routeRepository.GetAllRoutes()) { sb.AppendLine($"{route.Cost} 0"); foreach (var node in route.Nodes) { sb.Append($"{node.Id} "); } } await _dtoStore.WriteSolution(sb.ToString()); }
public IHttpActionResult GetAllRoutes() { WebResponseContentModel <List <RouteModel> > tmpUser = new WebResponseContentModel <List <RouteModel> >(); Del <List <RouteModel> > responseStatusHandler = ProcessContentModel; try { tmpUser.Content = routeRepo.GetAllRoutes(); responseStatusHandler(tmpUser); } catch (Exception ex) { responseStatusHandler(tmpUser, ex); return(Json(tmpUser)); } return(Json(tmpUser)); }
public string[] FindBestRoute(string origin, string destination, bool showAllRoutesFoud = false) { Route[] routes = _routeRepository.GetAllRoutes(); Tuple <string, int> bestRoute = null; for (int index = 0; index < routes.Length; index++) { var foundRoute = MountRoute(origin, destination, routes, index); if (showAllRoutesFoud) { if (foundRoute.Item2 != -1) { Console.WriteLine($"route found: {foundRoute.Item1} > ${foundRoute.Item2}"); } } if (bestRoute == null) { bestRoute = foundRoute; } if (foundRoute.Item2 != -1) { if (bestRoute.Item2 == -1) { bestRoute = foundRoute; } if (foundRoute.Item2 < bestRoute.Item2) { bestRoute = foundRoute; } } } if (bestRoute is null) { return(new string[] { "", "-1" }); } return(new string[] { bestRoute.Item1, bestRoute.Item2.ToString() }); }
protected override void OnAppearing() { base.OnAppearing(); var availableRoutes = _routeRepository.GetAllRoutes(); var userSubscriptions = _routeRepository.GetUserSubscription(_sessionData.User.UserId) .Result .ToLookup(x => x.RouteId); var routes = new ObservableCollection <RouteViewModel>(); RouteViewModel routeViewModel; SubscriptionDTO subscription; foreach (var item in availableRoutes.Result) { subscription = userSubscriptions[item.RouteId].FirstOrDefault(); routeViewModel = new RouteViewModel() { Name = item.Name, RouteId = item.RouteId, IsSuscribed = subscription != null, SubscriptionId = subscription?.SubscriptionId, RouteCoordinates = new ObservableCollection <Position>() }; // Se mapean las coordenadas item.Position.ForEach(x => routeViewModel .RouteCoordinates .Add(new Position(x.Latitude, x.Longitude)) ); routes.Add(routeViewModel); } routeLists.ItemsSource = routes; }
public List <Route> GetAllRoutes() { var AllRoutes = _repository.GetAllRoutes(); return(AllRoutes); }
public Graph(IRouteRepository <TNode> routeRepository) { _routeRepository = routeRepository; _routes = _routeRepository.GetAllRoutes(); }