Esempio n. 1
0
        private void MapAssemblyOf <T, TInterface>(StandardConfigurer <IRouter> configurer, string queueName)
        {
            _typeBasedRouterConfigurationBuilder = _typeBasedRouterConfigurationBuilder ?? configurer.TypeBased();

            foreach (Type type in typeof(T).Assembly.GetTypes().Where(t => typeof(TInterface).IsAssignableFrom(t)))
            {
                _typeBasedRouterConfigurationBuilder.Map(type, queueName);
            }
        }
        public static TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder Map(
            this TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder builder,
            IEnumerable <Type> types, string destination)
        {
            foreach (var type in types)
            {
                builder.Map(type, destination);
            }

            return(builder);
        }
 /// <summary>
 /// Map SignalR backplane commands to the destination address
 /// </summary>
 /// <param name="configurationBuilder"></param>
 /// <param name="destinationAddress"></param>
 /// <typeparam name="THub"></typeparam>
 /// <returns></returns>
 public static TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder MapSignalRCommands <THub>(
     this TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder configurationBuilder, string destinationAddress)
     where THub : Hub
 {
     configurationBuilder.Map <AddToGroup <THub> >(destinationAddress);
     configurationBuilder.Map <RemoveFromGroup <THub> >(destinationAddress);
     configurationBuilder.Map <All <THub> >(destinationAddress);
     configurationBuilder.Map <Connection <THub> >(destinationAddress);
     configurationBuilder.Map <Group <THub> >(destinationAddress);
     configurationBuilder.Map <User <THub> >(destinationAddress);
     return(configurationBuilder);
 }
Esempio n. 4
0
        public void Configure(TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder typeBasedRouterConfigurationBuilder)
        {
            if (_configuration.AssembliesWithMessages?.Any() != true)
            {
                throw new JarvisFrameworkEngineException("JarvisRebusConfiguration has no  AssembliesWithMessages configured. This is not permitted because no assembly will be scanned for commands to create routing.");
            }
            foreach (var assembly in _configuration.AssembliesWithMessages)
            {
                var types        = assembly.GetTypes();
                var messageTypes = types
                                   .Where(t => typeof(IMessage).IsAssignableFrom(t) && !t.IsAbstract);

                foreach (var message in messageTypes)
                {
                    var endpoint = _configuration.GetEndpointFor(message);
                    if (!String.IsNullOrEmpty(endpoint))
                    {
                        typeBasedRouterConfigurationBuilder.Map(message, endpoint);
                    }
                }
            }
        }
Esempio n. 5
0
 public static TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder Map(this TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder builder, IDictionary <Type, string> map)
 {
     foreach (var entry in map)
     {
         builder.Map(entry.Key, entry.Value);
     }
     return(builder);
 }
Esempio n. 6
0
        /// <summary>
        /// Adds mappings
        /// </summary>
        public static TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder AddEndpointMappingsFromAppConfig(this TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder builder)
        {
            var rebusRoutingConfigurationSection = GetRebusRoutingConfigurationSection();

            try
            {
                SetUpEndpointMappings(rebusRoutingConfigurationSection.MappingsCollection,
                                      (type, endpoint) => builder.Map(type, endpoint));

                return(builder);
            }
            catch (Exception exception)
            {
                throw GetStandardConfigurationException(exception);
            }
        }
        /// <summary>
        /// Adds mappings
        /// </summary>
        public static TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder AddMappingsFromConfiguration(this TypeBasedRouterConfigurationExtensions.TypeBasedRouterConfigurationBuilder builder, IConfiguration configuration, string path = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            var mappings = new Dictionary <string, string>();

            if (path == null)
            {
                configuration.Bind(mappings);
            }
            else
            {
                var section = configuration.GetSection(path) ?? throw new RebusConfigurationException(
                                        $"Could not find section with path '{path}' in the current configuration (which was very unexpected, because the configuration library should return an empty section and NOT null when looking for non-existent keys....)");
                section.Bind(mappings);
            }

            SetUpEndpointMappings(mappings, (type, queue) => builder.Map(type, queue));

            return(builder);
        }