internal virtual RoutingSettings <LearningTransport> BuildEndpointLearningRouting(
     RoutingSettings <LearningTransport> routing)
 {
     routing.RouteToEndpoint(typeof(PlaceOrder), "NSB.Server");
     return(routing);
 }
コード例 #2
0
        public static void RouteToEndpoint(this RoutingSettings routingSettings, Type messageType, Type destinationEndpointType)
        {
            var destinationEndpointAddress = Conventions.EndpointNamingConvention(destinationEndpointType);

            routingSettings.RouteToEndpoint(messageType, destinationEndpointAddress);
        }
 public static void AddRouting(this RoutingSettings routingSettings)
 {
     routingSettings.RouteToEndpoint(typeof(SendEmailCommand), NotificationsMessageHandler);
     Types.RoutingSettingsExtensions.AddRouting(routingSettings);
 }
コード例 #4
0
 private void RegisterPublisherAndEndpoints(RoutingSettings <SqlServerTransport> routing)
 {
     routing.RegisterPublisher(typeof(AlterationFinishedEvent), "AlterationSenderEndPoint");
     routing.RegisterPublisher(typeof(OrderPaidEvent), "AlterationSenderEndPoint");
 }
コード例 #5
0
 public override Result <EdgePath <T> > TryCalculateRaw <T>(IProfileInstance profile, WeightHandler <T> weightHandler, long sourceDirectedEdge, long targetDirectedEdge, RoutingSettings <T> settings)
 {
     return(new Result <EdgePath <T> >(new EdgePath <T>()));
 }
コード例 #6
0
 public PartitionAwareReceiverSideDistributionConfiguration(RoutingSettings routingSettings, string[] partitions)
     : base(routingSettings.GetSettings())
 {
     Partitions = new HashSet <string>(partitions);
 }
コード例 #7
0
 public static void MapBilling(this RoutingSettings <LearningTransport> routing)
 {
     routing.RouteToEndpoint(
         assembly: typeof(OrderBilled).Assembly,
         destination: "LooselyCoupledMonolith");
 }
コード例 #8
0
 public override Result <EdgePath <T>[][]> TryCalculateRaw <T>(Itinero.Profiles.IProfileInstance profile, WeightHandler <T> weightHandler, RouterPoint[] sources, RouterPoint[] targets,
                                                               RoutingSettings <T> settings)
 {
     throw new System.NotImplementedException();
 }
コード例 #9
0
 public void Configure(RoutingSettings routingSettings)
 {
     // Specify the routing for a specific type
     //routingSettings.RouteToEndpoint(typeof(SendMessage), "SomeEndpoint");
 }
 public void ConfigureRouting(RoutingSettings <LearningTransport> routingSettings)
 {
     ConfigureRoutingCalled = true;
 }
コード例 #11
0
 public static void RegisterEndpointInstances(this RoutingSettings config, params EndpointInstance[] instances)
 {
     config.GetSettings().GetOrCreate <EndpointInstances>().AddOrReplaceInstances(Guid.NewGuid().ToString(), instances);
 }
コード例 #12
0
ファイル: RouterMock.cs プロジェクト: schrod/routing
 public override Result <EdgePath <T> > TryCalculateRaw <T>(IProfileInstance profileInstance, WeightHandler <T> weightHandler, RouterPoint source, bool?sourceForward, RouterPoint target, bool?targetForward, RoutingSettings <T> settings, CancellationToken cancellationToken)
 {
     return(new Result <EdgePath <T> >(new EdgePath <T>()));
 }
 private static void AddRouting(this RoutingSettings routingSettings)
 {
     routingSettings.RouteToEndpoint(typeof(SendEmailCommand), NotificationsMessageHandler);
     routingSettings.RouteToEndpoint(typeof(SendSmsCommand), NotificationsMessageHandler);
 }
コード例 #14
0
 public static void AddRouting(this RoutingSettings routingSettings)
 {
     routingSettings.RouteToEndpoint(typeof(SendEmailCommand), NotificationsEndpointName);
 }
コード例 #15
0
ファイル: RouterDirectedTests.cs プロジェクト: schrod/routing
        public void TestNetwork3ContractedDirectedWithAngles()
        {
            var routerDb = new RouterDb();

            routerDb.LoadTestNetwork(
                System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(
                    "Itinero.Test.test_data.networks.network3.geojson"));
            var vertex0 = routerDb.Network.GetVertex(0);
            var vertex1 = routerDb.Network.GetVertex(1);
            var vertex2 = routerDb.Network.GetVertex(2);
            var vertex3 = routerDb.Network.GetVertex(3);
            var vertex4 = routerDb.Network.GetVertex(4);
            var vertex5 = routerDb.Network.GetVertex(5);
            var vertex6 = routerDb.Network.GetVertex(6);
            var vertex7 = routerDb.Network.GetVertex(7);
            var vertex8 = routerDb.Network.GetVertex(8);

            routerDb.Network.Sort();
            routerDb.Network.Compress();
            var profile = Itinero.Osm.Vehicles.Vehicle.Pedestrian.Fastest();

            routerDb.AddSupportedVehicle(profile.Parent);
            routerDb.AddContracted(profile, true);
            var router = new Router(routerDb);

            var location1 = new Coordinate(52.35286546406f, 6.66554092450f);
            var location2 = new Coordinate(52.35476168070f, 6.66636669078f);
            var location3 = new Coordinate(52.35502840541f, 6.66461193744f);
            var location4 = new Coordinate(52.35361232125f, 6.66458017720f);

            var point1 = router.Resolve(profile, location1);
            var point2 = router.Resolve(profile, location2);
            var point3 = router.Resolve(profile, location3);
            var point4 = router.Resolve(profile, location4);

            // test with angles along edges without don't care strategy.
            var route = router.TryCalculate(profile, point1, 45, point2, -10);

            Assert.IsNotNull(route);
            Assert.IsFalse(route.IsError);
            Assert.IsNotNull(route.Value.Shape);

            var json = route.Value.ToGeoJson();

            Assert.AreEqual(3, route.Value.Shape.Length);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[0], point1.LocationOnNetwork(routerDb)) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[1], vertex1) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[2], point2.LocationOnNetwork(routerDb)) < 1);

            // test with angles along edges without don't care strategy.
            route = router.TryCalculate(profile, point1, 45, point2, 170);
            Assert.IsNotNull(route);
            Assert.IsFalse(route.IsError);
            Assert.IsNotNull(route.Value.Shape);
            Assert.AreEqual(9, route.Value.Shape.Length);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[0], point1.LocationOnNetwork(routerDb)) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[1], vertex1) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[2], vertex2) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[3], vertex5) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[4], vertex6) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[5], vertex4) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[6], vertex3) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[7], vertex0) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[8], point2.LocationOnNetwork(routerDb)) < 1);

            // test with angles along edges without don't care strategy.
            route = router.TryCalculate(profile, point1, -135, point2, -10);
            Assert.IsNotNull(route);
            Assert.IsFalse(route.IsError);
            Assert.IsNotNull(route.Value.Shape);
            Assert.AreEqual(7, route.Value.Shape.Length);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[0], point1.LocationOnNetwork(routerDb)) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[1], vertex7) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[2], vertex6) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[3], vertex5) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[4], vertex2) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[5], vertex1) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[6], point2.LocationOnNetwork(routerDb)) < 1);

            // test with angles along edges without don't care strategy.
            route = router.TryCalculate(profile, point1, -135, point2, 170);
            Assert.IsNotNull(route);
            Assert.IsFalse(route.IsError);
            Assert.IsNotNull(route.Value.Shape);
            Assert.AreEqual(7, route.Value.Shape.Length);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[0], point1.LocationOnNetwork(routerDb)) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[1], vertex7) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[2], vertex6) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[3], vertex4) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[4], vertex3) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[5], vertex0) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[6], point2.LocationOnNetwork(routerDb)) < 1);

            // test with angles along edges without don't care strategy.
            route = router.TryCalculate(profile, point1, -135, point4, -135);
            Assert.IsNotNull(route);
            Assert.IsFalse(route.IsError);
            Assert.IsNotNull(route.Value.Shape);
            Assert.AreEqual(6, route.Value.Shape.Length);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[0], point1.LocationOnNetwork(routerDb)) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[1], vertex7) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[2], vertex6) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[3], vertex5) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[4], vertex2) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[5], point4.LocationOnNetwork(routerDb)) < 1);

            // test with angles along edges without don't care strategy, this route should fail because the arrival direction is impossible.
            route = router.TryCalculate(profile, point1, -135, point4, 45);
            Assert.IsNotNull(route);
            Assert.IsTrue(route.IsError);

            var settings = new RoutingSettings <float>();

            settings.DirectionAbsolute = false;

            // test with angles along edges without don't care strategy.
            route = router.TryCalculate(profile, point1, -135, point4, null, settings: settings);
            Assert.IsNotNull(route);
            Assert.IsFalse(route.IsError);
            Assert.IsNotNull(route.Value.Shape);
            Assert.AreEqual(6, route.Value.Shape.Length);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[0], point1.LocationOnNetwork(routerDb)) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[1], vertex7) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[2], vertex6) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[3], vertex5) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[4], vertex2) < 1);
            Assert.IsTrue(Coordinate.DistanceEstimateInMeter(route.Value.Shape[5], point4.LocationOnNetwork(routerDb)) < 1);
        }
コード例 #16
0
 public Endpoint <T> WithRouting()
 {
     this.routingConfiguration = transportConfiguration.Routing();
     return(this);
 }
コード例 #17
0
 private static void ConfigureRouting(RoutingSettings <RabbitMQTransport> routing)
 {
     //routing.RouteToEndpoint(typeof(TemperatureDataMessage), "sdms.device-listener.host");
 }
コード例 #18
0
 public override Result <EdgePath <T> > TryCalculateRaw <T>(Itinero.Profiles.IProfileInstance profile, WeightHandler <T> weightHandler, RouterPoint source, RouterPoint target, RoutingSettings <T> settings)
 {
     return(new Result <EdgePath <T> >(new EdgePath <T>()));
 }
コード例 #19
0
 /// <summary>
 /// Enables routing configured with the routing configuration file.
 /// </summary>
 /// <param name="config">The configuration object.</param>
 public static void UseFileBasedRouting(this RoutingSettings config)
 {
     config.GetSettings().EnableFeatureByDefault <FileBasedRoutingFeature>();
 }
コード例 #20
0
        public override Result <T[][]> TryCalculateWeight <T>(IProfileInstance profile, WeightHandler <T> weightHandler,
                                                              RouterPoint[] sources, RouterPoint[] targets, ISet <int> invalidSources, ISet <int> invalidTargets, RoutingSettings <T> settings)
        {
            var weights = new T[sources.Length][];

            for (var s = 0; s < sources.Length; s++)
            {
                weights[s] = new T[targets.Length];
                for (var t = 0; t < sources.Length; t++)
                {
                    weights[s][t] = weightHandler.Calculate(0, Coordinate.DistanceEstimateInMeter(
                                                                new Coordinate(sources[s].Latitude, sources[s].Longitude),
                                                                new Coordinate(targets[t].Latitude, targets[t].Longitude)));
                }
            }

            foreach (var invalid in _invalidSet)
            {
                invalidSources.Add(invalid);
                invalidTargets.Add(invalid);
            }

            return(new Result <T[][]>(weights));
        }
コード例 #21
0
 /// <summary>
 /// Enables routing configured with the routing configuration file under <paramref name="configurationFilePath"/>
 /// </summary>
 /// <param name="config">The configuration object.</param>
 /// <param name="configurationFilePath">The path to the configuration file.</param>
 public static void UseFileBasedRouting(this RoutingSettings config, string configurationFilePath)
 {
     config.UseFileBasedRouting(UriHelper.FilePathToUri(configurationFilePath));
 }
 public static void AddRouting(this RoutingSettings routingSettings)
 {
     routingSettings.RouteToEndpoint(typeof(RunHealthCheckCommand), "SFA.DAS.ProviderRegistrations.MessageHandlers");
 }
コード例 #23
0
 /// <summary>
 /// Enables routing configured with the routing configuration file under <paramref name="configurationFilePath"/>
 /// </summary>
 /// <param name="config">The configuration object.</param>
 /// <param name="configurationFilePath">The path to the configuration file.</param>
 /// <param name="updateInterval">The interval the route file should be checked for changes.</param>
 public static void UseFileBasedRouting(this RoutingSettings config, string configurationFilePath, TimeSpan updateInterval)
 {
     config.UseFileBasedRouting(UriHelper.FilePathToUri(configurationFilePath), updateInterval);
 }
コード例 #24
0
 public static void AddRouting(this RoutingSettings routingSettings)
 {
     routingSettings.RouteToEndpoint(typeof(AddEmployerVendorIdCommand), QueueNames.AddEmployerVendorId);
 }
コード例 #25
0
 /// <summary>
 /// Enables routing configured with the routing configuration file under <paramref name="configurationFileUri"/>
 /// </summary>
 /// <param name="config">The configuration object.</param>
 /// <param name="configurationFileUri">The <see cref="Uri"/> to the configuration file.</param>
 public static void UseFileBasedRouting(this RoutingSettings config, Uri configurationFileUri)
 {
     config.GetSettings().Set(FileBasedRoutingFeature.RoutingFilePathKey, configurationFileUri);
     config.GetSettings().EnableFeatureByDefault <FileBasedRoutingFeature>();
 }
    public static PartitionAwareReceiverSideDistributionConfiguration EnableReceiverSideDistribution(this RoutingSettings routingSettings, string[] discriminators)
    {
        var settings = routingSettings.GetSettings();

        PartitionAwareReceiverSideDistributionConfiguration config;

        if (!settings.TryGet(out config))
        {
            config = new PartitionAwareReceiverSideDistributionConfiguration(routingSettings, discriminators);
            settings.Set <PartitionAwareReceiverSideDistributionConfiguration>(config);
            settings.Set(typeof(ReceiverSideDistribution).FullName, FeatureState.Enabled);
        }

        return(config);
    }
コード例 #27
0
    public static PartitionAwareSenderSideDistributionConfiguration RegisterPartitionedDestinationEndpoint <T>(this RoutingSettings <T> routingSettings, string destinationEndpoint, string[] partitions) where T : TransportDefinition
    {
        var settings = routingSettings.GetSettings();

        var distributionConfiguration = new PartitionAwareSenderSideDistributionConfiguration(routingSettings, destinationEndpoint, partitions);

        var sendDistributionStrategy = new PartitionAwareDistributionStrategy(destinationEndpoint, distributionConfiguration.MapMessageToPartitionKey, DistributionStrategyScope.Send);
        var distributionPolicy       = settings.GetOrCreate <DistributionPolicy>();

        distributionPolicy.SetDistributionStrategy(sendDistributionStrategy);

        var destinationEndpointInstances = partitions.Select(key => new EndpointInstance(destinationEndpoint, key)).ToList();

        var endpointInstances = settings.GetOrCreate <EndpointInstances>();

        endpointInstances.AddOrReplaceInstances(destinationEndpoint, destinationEndpointInstances);

        return(distributionConfiguration);
    }