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)); } }
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); } }
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)); }