public DirectionsResultView(MapWidget mapWidget, FindCloseFacilityResultView fcfResultView, RouteResult routeResult, FindClosestResourceToolbar fcrToolbar)
        {
            InitializeComponent();
            base.DataContext = this;

            // Store a reference to the MapWidget that the toolbar has been installed to.
            _mapWidget = mapWidget;

            _closestFaculityResult = fcfResultView;
            _findClosestFacilityToolbar = fcrToolbar;

            RouteName = routeResult.Directions.RouteName;
            Summary = string.Format("{0:F1} {1}, {2}", routeResult.Directions.TotalLength, "miles", FormatTime(routeResult.Directions.TotalTime));

            List<Graphic> features = new List<Graphic>(routeResult.Directions.Features);
            features.RemoveAt(0);

            List<ManeuverViewModel> directionElements = new List<ManeuverViewModel>();
            Graphic previous = null;
            int i = 1;

            foreach (var next in features)
            {
                ManeuverViewModel maneuver = new ManeuverViewModel(previous, next, i++);
                maneuver.Graphic.MouseLeftButtonDown += Graphic_MouseLeftButtonDown;

                directionElements.Add(maneuver);
                previous = next;
            }

            Maneuvers = directionElements;
        }
Exemple #2
0
        public void Endless()
        {
            RouteResult routeResult = WebAppConfig.Router.Resolve("endless/x1/x2/x3");

            Assert.AreEqual(routeResult.Controller, "Endless");
            Assert.AreEqual(routeResult.Parameters["therest"], "x1/x2/x3");
        }
Exemple #3
0
        public void ValidationDecidedRouting1()
        {
            WebAppConfig.Router.ClearRoutingTable();

            WebAppConfig.Router.AddRoute("{controller}/{action}/{id}", "BadController", "{action}", new RegexRouteValidator("id", "xxx", RouteValidationAction.Error, RouteValidationAction.Skip));
            WebAppConfig.Router.AddRoute("{controller}/{action}/{id}", "NumericController", "{action}", new RegexRouteValidator("id", "\\d+"));
            WebAppConfig.Router.AddRoute("{controller}/{action}/{id}", "AlphaController", "{action}", new RegexRouteValidator("id", "[a-z]+"));
            WebAppConfig.Router.AddRoute("{controller}/{action}/{id}", "MixedController", "{action}", new RegexRouteValidator("id", "[a-z].*"));

            RouteResult routeResult = WebAppConfig.Router.Resolve("con/act/75");

            Assert.AreEqual("NumericController", routeResult.Controller);
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(routeResult.Parameters["id"], "75");

            routeResult = WebAppConfig.Router.Resolve("con/act/x75");

            Assert.AreEqual("MixedController", routeResult.Controller);
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(routeResult.Parameters["id"], "x75");

            routeResult = WebAppConfig.Router.Resolve("con/act/xyz");

            Assert.AreEqual("AlphaController", routeResult.Controller);
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(routeResult.Parameters["id"], "xyz");

            routeResult = WebAppConfig.Router.Resolve("con/act/75x");

            Assert.IsNull(routeResult);

            routeResult = WebAppConfig.Router.Resolve("con/act/xxx");

            Assert.IsNull(routeResult);
        }
Exemple #4
0
        public RouteContext Decorate(RouteContext routeContext, ShardingConnectorMetaData metaData, ShardingRule shardingRule,
                                     ConfigurationProperties properties)
        {
            var sqlStatementContext = routeContext.GetSqlCommandContext();
            // var tableNames = sqlStatementContext.GetTablesContext().GetTableNames();
            // if (!shardingRule.TableRules.Any(o => tableNames.Any(t => o.LogicTable.EqualsIgnoreCase(t))))
            // {
            //     return routeContext;
            // }
            var parameters = routeContext.GetParameterContext();

            ShardingCommandValidatorFactory.NewInstance(
                sqlStatementContext.GetSqlCommand())
            .IfPresent(validator => validator.Validate(shardingRule, sqlStatementContext.GetSqlCommand(), parameters));
            ShardingConditions shardingConditions = GetShardingConditions(parameters, sqlStatementContext, metaData.Schema, shardingRule);
            var needMergeShardingValues           = IsNeedMergeShardingValues(sqlStatementContext, shardingRule);

            if (needMergeShardingValues && sqlStatementContext.GetSqlCommand() is DMLCommand)
            {
                CheckSubQueryShardingValues(sqlStatementContext, shardingRule, shardingConditions);
                MergeShardingConditions(shardingConditions);
            }
            var         shardingRouteEngine = ShardingRouteEngineFactory.NewInstance(shardingRule, metaData, sqlStatementContext, shardingConditions, properties);
            RouteResult routeResult         = shardingRouteEngine.Route(shardingRule);

            if (needMergeShardingValues)
            {
                ShardingAssert.Else(1 == routeResult.GetRouteUnits().Count, "Must have one sharding with sub query.");
            }
            return(new RouteContext(sqlStatementContext, parameters, routeResult));
        }
Exemple #5
0
        public static bool Route()
        {
            string absolutePath = HttpContext.Current.Request.Url.AbsolutePath;

            if (IsNeedProcess(absolutePath) == false)
            {
                return(false);
            }

            UrlScheme scheme = GetCurrentUrlScheme();

            RouteResult routeResult = s_RouteTable.Route(scheme);

            if (routeResult.Succeed)
            {
                string path2 = TemplateManager.ParseTemplate(routeResult.OriginalPath);

                HttpContext.Current.RewritePath(path2);

                return(true);
            }
            else
            {
                if (AllSettings.Current.FriendlyUrlSettings.UrlFormat == UrlFormat.Query)
                {
                    if (IsRequestBySafeUrlRewrite())
                    {
                        HttpContext.Current.Response.Redirect("~/");
                    }
                }
            }

            return(false);
        }
Exemple #6
0
        private async void SolveRouteClick(object sender, EventArgs e)
        {
            // Create a new route task using the San Diego route service URI
            RouteTask solveRouteTask = await RouteTask.CreateAsync(_sanDiegoRouteServiceUri);

            // Get the default parameters from the route task (defined with the service)
            RouteParameters routeParams = await solveRouteTask.CreateDefaultParametersAsync();

            // Make some changes to the default parameters
            routeParams.ReturnStops      = true;
            routeParams.ReturnDirections = true;

            // Set the list of route stops that were defined at startup
            routeParams.SetStops(_routeStops);

            // Solve for the best route between the stops and store the result
            RouteResult solveRouteResult = await solveRouteTask.SolveRouteAsync(routeParams);

            // Get the first (should be only) route from the result
            Route firstRoute = solveRouteResult.Routes.First();

            // Get the route geometry (polyline)
            Polyline routePolyline = firstRoute.RouteGeometry;

            // Create a thick purple line symbol for the route
            SimpleLineSymbol routeSymbol = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Colors.Purple, 8.0);

            // Create a new graphic for the route geometry and add it to the graphics overlay
            Graphic routeGraphic = new Graphic(routePolyline, routeSymbol);

            _routeGraphicsOverlay.Graphics.Add(routeGraphic);

            // Get a list of directions for the route and display it in the list box
            DirectionsListBox.ItemsSource = firstRoute.DirectionManeuvers.Select(direction => direction.DirectionText);
        }
        private async void CalculateAndShowRoute()
        {
            try
            {
                // Calculate the route.
                RouteResult calculatedRoute = await _routeTask.SolveRouteAsync(_routeParameters);

                // Get the first returned result.
                Route firstResult = calculatedRoute.Routes.First();

                // Get the route geometry - this is the line that shows the route.
                Polyline calculatedRouteGeometry = firstResult.RouteGeometry;

                // Create the route graphic from the geometry and the symbol.
                Graphic routeGraphic = new Graphic(calculatedRouteGeometry, _routeSymbol);

                // Clear any existing routes, then add this one to the map.
                _routeOverlay.Graphics.Clear();
                _routeOverlay.Graphics.Add(routeGraphic);

                // Add the directions to the textbox.
                PrepareDirectionsList(firstResult.DirectionManeuvers);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.Write(e);
                ShowMessage("Routing error", $"Couldn't calculate route. See debug output for details. Message: {e.Message}");
            }
        }
        public void SetsTheValueOfTheExceptionProperty()
        {
            var exception = new Exception();

            var routeResult = new RouteResult(exception);

            Assert.That(routeResult.Exception, Is.SameAs(exception));
        }
        public void SetsTheValueOfTheResultProperty()
        {
            var result = new object();

            var routeResult = new RouteResult(new TestMessage(), result);

            Assert.That(routeResult.Result, Is.SameAs(result));
        }
        public void SetsTheValueOfTheMessageProperty()
        {
            var message = new TestMessage();

            var routeResult = new RouteResult(message, null);

            Assert.That(routeResult.Message, Is.SameAs(message));
        }
Exemple #11
0
        public void RouteMappedId()
        {
            RouteResult routeResult = WebAppConfig.Router.Resolve("con/act/mappedid/99");

            Assert.AreEqual(routeResult.Controller, "con");
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(routeResult.Parameters["id"], "99");
        }
Exemple #12
0
        public void RouteAnyId()
        {
            RouteResult routeResult = WebAppConfig.Router.Resolve("con/act/anyid/500");

            Assert.AreEqual(routeResult.Controller, "con");
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(routeResult.Parameters["id"], "500");
        }
Exemple #13
0
        public void DefaultRoute2()
        {
            RouteResult routeResult = WebAppConfig.Router.Resolve("con/act");

            Assert.AreEqual(routeResult.Controller, "con");
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(0, routeResult.Parameters.Count);
        }
Exemple #14
0
        public void SetsTheValueOfTheMessageProperty()
        {
            var message = new TestMessage();

            var routeResult = new RouteResult(message, null);

            Assert.That(routeResult.Message, Is.SameAs(message));
        }
Exemple #15
0
        public void SetsTheValueOfTheResultProperty()
        {
            var result = new object();

            var routeResult = new RouteResult(new TestMessage(), result);

            Assert.That(routeResult.Result, Is.SameAs(result));
        }
Exemple #16
0
        public void SetsTheValueOfTheExceptionProperty()
        {
            var exception = new Exception();

            var routeResult = new RouteResult(exception);

            Assert.That(routeResult.Exception, Is.SameAs(exception));
        }
        public async Task TestOffset()
        {
            var store = new Mock <ICheckpointStore>();

            store.Setup(s => s.GetCheckpointDataAsync("dispatcher.1", It.IsAny <CancellationToken>())).ReturnsAsync(new CheckpointData(21));
            store.Setup(s => s.GetCheckpointDataAsync("dispatcher.1.endpoint1", It.IsAny <CancellationToken>())).ReturnsAsync(new CheckpointData(23));
            store.Setup(s => s.GetCheckpointDataAsync("dispatcher.1.endpoint2", It.IsAny <CancellationToken>())).ReturnsAsync(new CheckpointData(22));

            var endpoint1 = new TestEndpoint("endpoint1");
            var endpoint2 = new TestEndpoint("endpoint2");
            var endpoints = new Dictionary <Endpoint, IList <uint> > {
                { endpoint1, new List <uint>()
                  {
                      0
                  } }, { endpoint2, new List <uint>()
                         {
                             0
                         } }
            };
            Dispatcher dispatcher1 = await Dispatcher.CreateAsync("dispatcher.1", "hub", endpoints, SyncExecutorFactory, store.Object);

            Assert.Equal(Option.Some(21L), dispatcher1.Offset);

            RouteResult result1 = new RouteResult(endpoint1, 0, 3600);
            RouteResult result2 = new RouteResult(endpoint2, 0, 3600);

            await dispatcher1.DispatchAsync(MessageWithOffset(24L), new HashSet <RouteResult> {
                result1
            });

            Assert.Equal(Option.Some(24L), dispatcher1.Offset);
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1", It.Is <CheckpointData>(c => c.Offset == 24), It.IsAny <CancellationToken>()), Times.Once());
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1.endpoint1", It.Is <CheckpointData>(c => c.Offset == 24), It.IsAny <CancellationToken>()), Times.Once());

            await dispatcher1.DispatchAsync(MessageWithOffset(25L), new HashSet <RouteResult> {
                result1, result2
            });

            Assert.Equal(Option.Some(25L), dispatcher1.Offset);
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1", It.Is <CheckpointData>(c => c.Offset == 25), It.IsAny <CancellationToken>()), Times.Once());
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1.endpoint1", It.Is <CheckpointData>(c => c.Offset == 25), It.IsAny <CancellationToken>()), Times.Once());
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1.endpoint2", It.Is <CheckpointData>(c => c.Offset == 25), It.IsAny <CancellationToken>()), Times.Once());

            await dispatcher1.DispatchAsync(MessageWithOffset(26L), new HashSet <RouteResult> {
                result2
            });

            Assert.Equal(Option.Some(26L), dispatcher1.Offset);
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1", It.Is <CheckpointData>(c => c.Offset == 26), It.IsAny <CancellationToken>()), Times.Once());
            store.Verify(s => s.SetCheckpointDataAsync("dispatcher.1.endpoint2", It.Is <CheckpointData>(c => c.Offset == 26), It.IsAny <CancellationToken>()), Times.Once());

            await dispatcher1.CloseAsync(CancellationToken.None);

            Dispatcher dispatcher2 = await Dispatcher.CreateAsync("dispatcher.2", "hub", new Dictionary <Endpoint, IList <uint> >(), SyncExecutorFactory);

            Assert.Equal(Option.None <long>(), dispatcher2.Offset);
            await dispatcher2.CloseAsync(CancellationToken.None);
        }
 public static void Initialize(TestContext context)
 {
     var testHandler = TestMessageHandler.FromResourceResponse("RouteFrom1172_34ToRedlandsCA");
     var task = new RouteService(testHandler).GetRoute(
         new MapPoint(-117.2, 34) { SpatialReference = SpatialReferences.Wgs84 },
         new MapPoint(-117.18253721699972, 34.055566969000438) { SpatialReference = SpatialReferences.Wgs84 },
         CancellationToken.None);
     task.Wait();
     route = task.Result;
 }
Exemple #19
0
        public RouteResult Route(string path, HttpMethod method)
        {
            var result = new RouteResult();

            if (this.table.TryGetValue(path, out var node))
            {
                result.Handler = node.Get(method);
            }
            return(result);
        }
        public RouteResult Route(ShardingRule shardingRule)
        {
            RouteResult result = new RouteResult();

            foreach (var dataSourceName in shardingRule.ShardingDataSourceNames.DataSourceNames)
            {
                result.GetRouteUnits().Add(new RouteUnit(new RouteMapper(dataSourceName, dataSourceName), new List <RouteMapper>(0)));
            }
            return(result);
        }
 private ShardingContext(RouteResult routeResult)
 {
     foreach (var physicTable in routeResult.ReplaceTables)
     {
         _shardingTables.Add(physicTable.VirtualTable, new List <string>(1)
         {
             physicTable.Tail
         });
     }
 }
        public void ProcessRequest(HttpContext context)
        {
            Request  = context.Request;
            Response = context.Response;
            string rootPath = Request.MapPath("~");

            String StartIds = Request.QueryString["start"];
            String EndIds   = Request.QueryString["end"];

            String[]  StartArr = StartIds.Split(',');
            String[]  EndArr   = EndIds.Split(',');
            String    retStr   = "";
            ArrayList retArr   = new ArrayList();

            try
            {
                for (int i = 0; i < StartArr.Length; i++)
                {
                    for (int j = 0; j < EndArr.Length; j++)
                    {
                        List <RouteResult> RouteRs = GetAllRouteRs(StartArr[i], EndArr[j]);
                        for (int k = 0; k < RouteRs.Count; k++)
                        {
                            RouteResult RtRs = RouteRs[k];
                            retArr.Add(TranslateRtRs(RtRs));
                        }
                    }
                }
                string formater = "{{'NUM':'{0}','RESULTSET':[{1}]}}";
                if (retArr.Count == 0)
                {
                    retStr = string.Format(formater, "0", "");
                }
                else
                {
                    string[] tmp = new string[retArr.Count];
                    retArr.CopyTo(tmp);
                    retStr = string.Format(formater, retArr.Count.ToString(), string.Join(",", tmp));
                }
            }
            catch (Exception ex)
            {
                retStr = "alert('" + ex.Message + "!');";
            }
            finally
            {
                retStr = retStr.Trim();
                //if (retStr.Length > 0)
                //{
                //    retStr = retStr.Substring(0, retStr.Length - 1);
                //}
                Response.Write(retStr);
            }
        }
        private void routeTask_SolveCompleted(object sender, RouteEventArgs e)
        {
            GraphicsLayer graphicsLayer = MyMap.Layers["MyRouteGraphicsLayer"] as GraphicsLayer;
            RouteResult   routeResult   = e.RouteResults[0];

            _directionsFeatureSet = routeResult.Directions;

            graphicsLayer.Graphics.Add(new Graphic()
            {
                Geometry = _directionsFeatureSet.MergedGeometry, Symbol = LayoutRoot.Resources["RouteSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol
            });
            TotalDistanceTextBlock.Text = string.Format("Total Distance: {0}", FormatDistance(_directionsFeatureSet.TotalLength, "miles"));
            TotalTimeTextBlock.Text     = string.Format("Total Time: {0}", FormatTime(_directionsFeatureSet.TotalTime));
            TitleTextBlock.Text         = _directionsFeatureSet.RouteName;

            int i = 1;

            foreach (Graphic graphic in _directionsFeatureSet.Features)
            {
                System.Text.StringBuilder text = new System.Text.StringBuilder();
                text.AppendFormat("{0}. {1}", i, graphic.Attributes["text"]);
                if (i > 1 && i < _directionsFeatureSet.Features.Count)
                {
                    string distance = FormatDistance(Convert.ToDouble(graphic.Attributes["length"]), "miles");
                    string time     = null;
                    if (graphic.Attributes.ContainsKey("time"))
                    {
                        time = FormatTime(Convert.ToDouble(graphic.Attributes["time"]));
                    }
                    if (!string.IsNullOrEmpty(distance) || !string.IsNullOrEmpty(time))
                    {
                        text.Append(" (");
                    }
                    text.Append(distance);
                    if (!string.IsNullOrEmpty(distance) && !string.IsNullOrEmpty(time))
                    {
                        text.Append(", ");
                    }
                    text.Append(time);
                    if (!string.IsNullOrEmpty(distance) || !string.IsNullOrEmpty(time))
                    {
                        text.Append(")");
                    }
                }
                TextBlock textBlock = new TextBlock()
                {
                    Text = text.ToString(), Tag = graphic, Margin = new Thickness(4), Cursor = Cursors.Hand
                };
                textBlock.MouseLeftButtonDown += new MouseButtonEventHandler(directionsSegment_MouseLeftButtonDown);
                DirectionsStackPanel.Children.Add(textBlock);
                i++;
            }
            MyMap.ZoomTo(Expand(_directionsFeatureSet.Extent));
        }
Exemple #24
0
        private void routeTask_SolveCompleted(object sender, RouteEventArgs e)
        {
            GraphicsLayer routeLayer  = MyMap.Layers["MyRouteGraphicsLayer"] as GraphicsLayer;
            RouteResult   routeResult = e.RouteResults[0];

            routeResult.Route.Symbol = LayoutRoot.Resources["RouteSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol;

            routeLayer.Graphics.Clear();
            Graphic lastRoute = routeResult.Route;

            routeLayer.Graphics.Add(lastRoute);
        }
Exemple #25
0
        public void NumericId()
        {
            RouteResult routeResult = WebAppConfig.Router.Resolve("con/act/numericid/75");

            Assert.AreEqual(routeResult.Controller, "con");
            Assert.AreEqual(routeResult.Action, "act");
            Assert.AreEqual(routeResult.Parameters["id"], "75");

            routeResult = WebAppConfig.Router.Resolve("con/act/numericid/75a");

            Assert.IsNull(routeResult);
        }
Exemple #26
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RouteDataSource"/> class.
 /// </summary>
 /// <param name="route">The route.</param>
 public RouteDataSource(RouteResult route)
 {
     m_route = route;
     if (IsDesignMode) //Design time data
     {
         DistanceToDestination = 1000;
         DistanceToWaypoint    = 500;
         TimeToWaypoint        = new TimeSpan(1, 2, 3);
         TimeToDestination     = new TimeSpan(2, 3, 4);
         NextManeuver          = "Turn right onto Main St.";
     }
 }
Exemple #27
0
        public RouteResult Route(ShardingRule shardingRule)
        {
            RouteResult result          = new RouteResult();
            var         logicTableNames = GetLogicTableNames();

            foreach (var logicTableName in logicTableNames)
            {
                result.GetRouteUnits().AddAll(GetAllRouteUnits(shardingRule, logicTableName));
            }

            return(result);
        }
        private async Task FindRoute()
        {
            // Manage Buttons
            AcceptNavigation.Visibility = Visibility.Visible;
            AcceptNavigation.IsEnabled  = true;
            RefuseNavigation.Visibility = Visibility.Visible;
            RefuseNavigation.IsEnabled  = true;
            CancelNavigation.Visibility = Visibility.Hidden;
            CancelNavigation.IsEnabled  = false;
            TripRequestTB.Visibility    = Visibility.Visible;

            try
            {
                _solveRouteTask = await RouteTask.CreateAsync(_transportationNetwork);

                _routeParameters = await _solveRouteTask.CreateDefaultParametersAsync();

                var truckMode = from travelmode in _solveRouteTask.RouteTaskInfo.TravelModes
                                where travelmode.Type == "TRUCK"
                                select travelmode;
                _routeParameters.TravelMode             = truckMode.Last();
                _routeParameters.ReturnDirections       = true;
                _routeParameters.ReturnStops            = true;
                _routeParameters.ReturnRoutes           = true;
                _routeParameters.OutputSpatialReference = SpatialReferences.Wgs84;

                List <Stop> stops = new List <Stop> {
                    new Stop(_mapView.LocationDisplay.MapLocation),
                    new Stop(_startPoint)
                };
                _routeParameters.SetStops(stops);

                _routeResult = await _solveRouteTask.SolveRouteAsync(_routeParameters);

                _route = _routeResult.Routes.FirstOrDefault();

                // Display UI info
                TimeTB     = _route.TotalTime.ToString(@"hh\:mm\:ss");
                DistanceTB = Math.Round(_route.TotalLength / 1000, 2).ToString();

                // Diplay the route
                Polyline         routePolyline = _route.RouteGeometry;
                SimpleLineSymbol routeSymbol   = new SimpleLineSymbol(SimpleLineSymbolStyle.Solid, Color.BlueViolet, 4.0f);
                Graphic          routeGraphic  = new Graphic(routePolyline, routeSymbol);
                _graphicsOverlay.Graphics.Add(routeGraphic);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            setExtent(_mapView.LocationDisplay.MapLocation, _startPoint);
            //StartNavigation();
        }
        public RouteResult Route(ShardingRule shardingRule)
        {
            RouteResult result = new RouteResult();
            ICollection <ISet <string> > broadcastDataSourceGroup = GetBroadcastDataSourceGroup(GetDataSourceGroup(shardingRule));

            foreach (var broadcastDataSource in broadcastDataSourceGroup)
            {
                var dataSourceName = GetRandomDataSourceName(broadcastDataSource);
                result.GetRouteUnits().Add(new RouteUnit(new RouteMapper(dataSourceName, dataSourceName), new List <RouteMapper>(0)));
            }
            return(result);
        }
Exemple #30
0
        public void TestRemoveRoute()
        {
            var endpoint1    = new TestEndpoint("id1");
            var endpoint2    = new TestEndpoint("id2");
            var result1      = new RouteResult(endpoint1, 0, 0);
            var result2      = new RouteResult(endpoint2, 0, 0);
            var allEndpoints = new HashSet <Endpoint> {
                endpoint1, endpoint2
            };
            var route1 = new Route("id1", "false", "hub", TelemetryMessageSource.Instance, endpoint1, 0, 0);
            var route2 = new Route("id2", "true", "hub", TelemetryMessageSource.Instance, endpoint2, 0, 0);
            var route3 = new Route("id3", "true", "hub", TelemetryMessageSource.Instance, endpoint1, 0, 0);
            var routes = new HashSet <Route> {
                route2, route1, route3
            };

            var evaluator = new Evaluator(new RouterConfig(allEndpoints, routes));

            ISet <RouteResult> results = evaluator.Evaluate(Message1);

            Assert.Equal(2, results.Count);
            Assert.Contains(result2, results);
            Assert.Contains(result1, results);
            Assert.True(routes.SetEquals(evaluator.Routes));

            // Remove route2
            evaluator.RemoveRoute("id2");
            results = evaluator.Evaluate(Message1);
            Assert.Equal(1, results.Count);
            Assert.Contains(result1, results);
            Assert.True(evaluator.Routes.SetEquals(new HashSet <Route> {
                route3, route1
            }));

            // Remove route3
            evaluator.RemoveRoute("id3");
            results = evaluator.Evaluate(Message1);
            Assert.Equal(0, results.Count);
            Assert.DoesNotContain(result1, results);
            Assert.True(evaluator.Routes.SetEquals(new HashSet <Route> {
                route1
            }));

            // Remove route3 again
            evaluator.RemoveRoute("id3");
            results = evaluator.Evaluate(Message1);
            Assert.Equal(0, results.Count);
            Assert.DoesNotContain(result1, results);
            Assert.True(evaluator.Routes.SetEquals(new HashSet <Route> {
                route1
            }));
        }
        private void MyRouteTask_SolveCompleted(object sender, RouteEventArgs e)
        {
            routeGraphicsLayer.Graphics.Clear();

            RouteResult routeResult = e.RouteResults[0];

            Graphic lastRoute = routeResult.Route;

            decimal totalTime = (decimal)lastRoute.Attributes["Total_TravelTime"];

            TotalTimeTextBlock.Text = string.Format("Total time: {0} minutes", totalTime.ToString("#0.000"));

            routeGraphicsLayer.Graphics.Add(lastRoute);
        }
Exemple #32
0
        public void StartPathing(ActorSpawner s)
        {
            router  = new Router();
            spawner = s;

            Vector3 pos = startingNode.transform.position;

            transform.position = pos;

            Node targetNode = spawner.RandomNode();

            //  now we have the route
            route = router.Route(startingNode, targetNode);
        }
        public RouteResult Route(ShardingRule shardingRule)
        {
            RouteResult result = new RouteResult();
            var         dataSourceLogicTablesMap = GetDataSourceLogicTablesMap();

            foreach (var dataSourceLogicTableMap in dataSourceLogicTablesMap)
            {
                List <ISet <String> >      actualTableGroups  = GetActualTableGroups(dataSourceLogicTableMap.Key, dataSourceLogicTableMap.Value);
                List <ISet <RouteMapper> > routingTableGroups = ToRoutingTableGroups(dataSourceLogicTableMap.Key, actualTableGroups);
                result.GetRouteUnits().AddAll(GetRouteUnits(dataSourceLogicTableMap.Key, routingTableGroups.Cartesian().Select(o => o.ToList()).ToHashSet()));
            }

            return(result);
        }
        public RouteResult Route(ShardingRule shardingRule)
        {
            RouteResult        result        = new RouteResult();
            List <RouteMapper> routingTables = new List <RouteMapper>(_logicTables.Count);

            foreach (var logicTable in _logicTables)
            {
                routingTables.Add(new RouteMapper(logicTable, logicTable));
            }
            String dataSourceName = shardingRule.ShardingDataSourceNames.GetDefaultDataSourceName();

            result.GetRouteUnits().Add(new RouteUnit(new RouteMapper(dataSourceName, dataSourceName), routingTables));
            return(result);
        }
        private async Task CalculateRouteAsync()
        {
            try
            {
                progress.Visibility = Visibility.Visible;

                RouteParameters routeParams = await _routeTask.GetDefaultParametersAsync();

                routeParams.OutSpatialReference = MyMapView.SpatialReference;
                routeParams.ReturnDirections    = false;

                routeParams.SetStops(_stopsGraphicsOverlay.Graphics);

                RouteResult routeResult = await _routeTask.SolveAsync(routeParams);

                if (routeResult.Routes.Count > 0)
                {
                    _routeGraphicsOverlay.Graphics.Clear();

                    var route = routeResult.Routes.First().RouteFeature;
                    _routeGraphicsOverlay.Graphics.Add(new Graphic(route.Geometry));

                    var meters = GeometryEngine.GeodesicLength(route.Geometry, GeodeticCurveType.Geodesic);
                    txtDistance.Text = string.Format("{0:0.00} miles", LinearUnits.Miles.ConvertFromMeters(meters));

                    panelRouteInfo.Visibility = Visibility.Visible;
                }
            }
            catch (AggregateException ex)
            {
                var innermostExceptions = ex.Flatten().InnerExceptions;
                if (innermostExceptions != null && innermostExceptions.Count > 0)
                {
                    MessageBox.Show(innermostExceptions[0].Message);
                }
                else
                {
                    MessageBox.Show(ex.Message);
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
            finally
            {
                progress.Visibility = Visibility.Collapsed;
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RouteLocationSimulator"/> class.
 /// </summary>
 /// <param name="route">The route to use for simulation. The spatial reference of the route
 /// must be in geographic coordinates (WGS84).</param>
 /// <param name="startPoint">An optional starting point.</param>
 public RouteLocationSimulator(RouteResult route, MapPoint startPoint = null)
 {
     if (route == null)
         throw new ArgumentNullException("route");
     m_route = route;
     timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(1) };
     if (startPoint == null)
     {
         startPoint = new MapPoint((route.Routes.First().RouteGraphic.Geometry as Polyline).Paths[0][0], SpatialReferences.Wgs84);
     }
     timer.Tick += timer_Tick;
     Speed = 50; // double.NaN;
     directionIndex = 0;
     lineLength = 0;// GeometryEngine.GeodesicLength(route.Directions.First().MergedGeometry);
     drivePath = route.Routes.First().RouteGraphic.Geometry as Polyline;
 }
		/// <summary>
		/// Initializes a new instance of the <see cref="RouteLocationSimulator"/> class.
		/// </summary>
		/// <param name="route">The route to use for simulation. The spatial reference of the route
		/// must be in geographic coordinates (WGS84).</param>
		/// <param name="startPoint">An optional starting point.</param>
		public RouteLocationSimulator(RouteResult route, MapPoint startPoint = null)
		{
			if (route == null)
				throw new ArgumentNullException("route");
			m_route = route;
			timer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(1) };
			if (startPoint == null)
			{
				startPoint = (route.Routes.First().RouteFeature.Geometry as Polyline).Parts.GetPartsAsPoints().First().First();
			}
			timer.Tick += timer_Tick;
			Speed = 50;
			directionIndex = 0;
			lineLength = 0;
			drivePath = route.Routes.First().RouteFeature.Geometry as Polyline;
		}
 /// <summary>
 /// Initializes a new instance of the <see cref="RouteDataSource"/> class.
 /// </summary>
 /// <param name="route">The route.</param>
 public RouteDataSource(RouteResult route)
 {
     m_route = route;
     if (IsDesignMode) //Design time data
     {
         DistanceToDestination = 1000;
         DistanceToWaypoint = 500;
         TimeToWaypoint = new TimeSpan(1, 2, 3);
         TimeToDestination = new TimeSpan(2, 3, 4);
         NextManeuver = "Turn right onto Main St.";
     }
     else
     {
         InitializeRoute();
     }
 }
        public void ReturnsFalseWhenTheExceptionPropertyIsNotNull()
        {
            var result = new RouteResult(new Exception());

            Assert.That(result.Success, Is.False);
        }
        public void ReturnsTrueWhenTheMessagePropertyIsNotNull()
        {
            var result = new RouteResult(new TestMessage(), null);

            Assert.That(result.Success, Is.True);
        }
        // ***********************************************************************************
        // * Initialize Find Closest Facility Result View
        // ***********************************************************************************
        public FindCloseFacilityResultView(FindClosestResourceToolbar findClosestToolbar, RouteResult[] routeResults, MapWidget mapWidget)
        {
            InitializeComponent();

            base.DataContext = this;

            // Store a reference to the MapWidget that the toolbar has been installed to.
            _mapWidget = mapWidget;

            _dirSummary = new DirectionSummary();
            _dirSummary.From = "From";
            _dirSummary.To = "To";
            _dirSummary.FieldType = "FieldType";
            _dirSummary.Rank = "Rank";
            _dirSummary.TotalTime = "Total Time";
            _dirSummary.TotalLength = "Total Length";
            _directions.Add(_dirSummary);

            _closestFacilityToolbar = findClosestToolbar;

            // add each route result to the result dialog.
            foreach(RouteResult routeResult in routeResults)
            {
                DirectionsFeatureSet directionsFS = routeResult.Directions;
                string routeName = directionsFS.RouteName;
                int j = routeName.IndexOf("-");

                _dirSummary = new DirectionSummary();
                _dirSummary.From = routeName.Substring(0, j - 1);
                _dirSummary.To =  routeName.Substring(j + 2);
                _dirSummary.FieldType = _closestFacilityToolbar.FacilityType;
                _dirSummary.Rank = directionsFS.RouteID.ToString();
                _dirSummary.TotalTime = directionsFS.TotalDriveTime.ToString("0.0") + " minutes";
                _dirSummary.TotalLength = directionsFS.TotalLength.ToString("0.0") + " miles";
                _dirSummary.SelectedRoute = routeResult;
                _directions.Add(_dirSummary);
            }
        }