Esempio n. 1
0
        private static async Task RegisterRouteAsync(IRoutingRegistration model, object plugin, RouteMetadata route)
        {
            var pattern = route.Route;

            if (RouteHandlerFactory.IsRpc(route))
            {
                var handler = RouteHandlerFactory.BuildRpcHandler(plugin, route);
                await model.RegisterRpcHandlerAsync(pattern, new Func <Message, CancellationToken, Task <Message> >(handler));
            }
            else
            {
                var handler = RouteHandlerFactory.BuildBusHandler(plugin, route);
                await model.RegisterBusHandlerAsync(pattern, new Func <Message, CancellationToken, Task>(handler));
            }
        }
Esempio n. 2
0
        public static async Task RegisterPluginAsync(IRoutingSender sender, IRoutingRegistration registration, PluginMetadata pluginMetadata)
        {
            if (pluginMetadata.ServiceType != ServiceType.MessageHandler)
            {
                return;
            }

            var plugin = CreatePlugin(pluginMetadata, sender);

            var routes = RouteDiscoverer.Discover(pluginMetadata);

            foreach (var route in routes)
            {
                await RegisterRouteAsync(registration, plugin, route);
            }
        }
Esempio n. 3
0
 public TracedRoutingRegistration(IRoutingRegistration registration, string serviceName)
 {
     _registration = registration;
     _serviceName  = serviceName;
 }
 public PollyRoutingRegistration(IRoutingRegistration registration, AsyncPolicy policy)
 {
     _registration = registration;
     _policy       = policy;
 }
 public static IRoutingRegistration ConfigureTracing(this IRoutingRegistration registration, string serviceName)
 {
     return(new TracedRoutingRegistration(registration, serviceName));
 }