Exemplo n.º 1
0
 public RouteProvider(NtradaOptions options, IRequestHandlerManager requestHandlerManager,
                      IRouteConfigurator routeConfigurator, IRequestExecutionValidator requestExecutionValidator,
                      IUpstreamBuilder upstreamBuilder, ILogger <RouteProvider> logger)
 {
     _routeConfigurator         = routeConfigurator;
     _requestExecutionValidator = requestExecutionValidator;
     _upstreamBuilder           = upstreamBuilder;
     _options = options;
     _requestHandlerManager = requestHandlerManager;
     _logger  = logger;
     _methods = new Dictionary <string, Action <IRouteBuilder, string, RouteConfig> >
     {
         ["get"] = (builder, path, routeConfig) =>
                   builder.MapGet(path,
                                  (request, response, routeData) => Handle(request, response, routeData, routeConfig)),
         ["post"] = (builder, path, routeConfig) =>
                    builder.MapPost(path,
                                    (request, response, routeData) => Handle(request, response, routeData, routeConfig)),
         ["put"] = (builder, path, routeConfig) =>
                   builder.MapPut(path,
                                  (request, response, routeData) => Handle(request, response, routeData, routeConfig)),
         ["delete"] = (builder, path, routeConfig) =>
                      builder.MapDelete(path,
                                        (request, response, routeData) => Handle(request, response, routeData, routeConfig)),
         ["patch"] = (builder, path, routeConfig) =>
                     builder.MapVerb("patch", path,
                                     (request, response, routeData) => Handle(request, response, routeData, routeConfig)),
     };
 }
Exemplo n.º 2
0
 public UpstreamBuilder(NtradaOptions options, IRequestHandlerManager requestHandlerManager,
                        ILogger <UpstreamBuilder> logger)
 {
     _options = options;
     _requestHandlerManager = requestHandlerManager;
     _logger = logger;
 }
Exemplo n.º 3
0
 /// <summary>
 /// It used to inject mock object
 /// </summary>
 /// <param name="subcriptionManager"></param>
 /// <param name="requestHandlerManager"></param>
 /// <param name="iocResolver"></param>
 public InProcessServiceBus(ISubscriptionManager subcriptionManager, IRequestHandlerManager requestHandlerManager, IIocResolver iocResolver)
 {
     _subcriptionManager    = subcriptionManager;
     _requestHandlerManager = requestHandlerManager;
     _iocResolver           = iocResolver;
     _defaultInstance       = this;
 }
Exemplo n.º 4
0
        private void RegisterHandlerType(ISubscriptionManager subcriptionsManager, IRequestHandlerManager requestManager, Type aHandlerType)
        {
            var interfaces = aHandlerType.GetInterfaces();

            foreach (var aInterface in interfaces)
            {
                if (!typeof(IHandler).IsAssignableFrom(aInterface))
                {
                    continue;
                }

                var genericArgs = aInterface.GetGenericArguments();
                if (genericArgs.Length == 1)
                {
                    if (typeof(IRequestHandler).IsAssignableFrom(aInterface))
                    {
                        requestManager.AddRequestHandler(genericArgs[0], new IocHandlerFactory(aHandlerType, genericArgs[0]));
                    }
                    else
                    {
                        subcriptionsManager.AddSubscription(genericArgs[0], new IocHandlerFactory(aHandlerType, genericArgs[0]));
                    }
                }
            }
        }
Exemplo n.º 5
0
        private void RegisterHandlers(ISubscriptionManager subcriptionsManager, IRequestHandlerManager requestManager)
        {
            foreach (var aHandlerAssembly in _handlerAssemblies)
            {
                var handlerTypes = aHandlerAssembly.GetTypes().Where(p => typeof(IHandler).IsAssignableFrom(p) && !p.IsInterface);

                foreach (var aHandler in handlerTypes)
                {
                    RegisterHandlerType(subcriptionsManager, requestManager, aHandler);
                }
            }
        }
Exemplo n.º 6
0
        public RabbitMessageDispatcher(
            IAmqpConnection persistentConnection,
            ILogger <RabbitMessageDispatcher> logger,
            IServiceProvider serviceProvider,
            IRequestHandlerManager handlerManager,
            string rpcQueueName   = "rpc_queue",
            string eventQueueName = "event_queue",
            int retryCount        = 5)
        {
            _persistentConnection = persistentConnection;
            _serviceProvider      = serviceProvider;
            _logger         = logger;
            _handlerManager = handlerManager;
            _eventQueueName = eventQueueName;
            _rpcQueueName   = rpcQueueName;
            _retryCount     = retryCount;

            _rpcChannel   = CreateRpcChannel();
            _eventChannel = CreateEventChannel();
        }
Exemplo n.º 7
0
 public RouteProvider(NtradaOptions options, IRequestHandlerManager requestHandlerManager,
                      IRouteConfigurator routeConfigurator, IRequestExecutionValidator requestExecutionValidator,
                      IUpstreamBuilder upstreamBuilder, WebApiEndpointDefinitions definitions, ILogger <RouteProvider> logger)
 {
     _routeConfigurator         = routeConfigurator;
     _requestExecutionValidator = requestExecutionValidator;
     _upstreamBuilder           = upstreamBuilder;
     _definitions           = definitions;
     _options               = options;
     _requestHandlerManager = requestHandlerManager;
     _logger  = logger;
     _methods = new Dictionary <string, Action <IEndpointRouteBuilder, string, RouteConfig> >
     {
         ["get"] = (builder, path, routeConfig) =>
                   builder.MapGet(path, ctx => Handle(ctx, routeConfig)),
         ["post"] = (builder, path, routeConfig) =>
                    builder.MapPost(path, ctx => Handle(ctx, routeConfig)),
         ["put"] = (builder, path, routeConfig) =>
                   builder.MapPut(path, ctx => Handle(ctx, routeConfig)),
         ["delete"] = (builder, path, routeConfig) =>
                      builder.MapDelete(path, ctx => Handle(ctx, routeConfig)),
     };
 }
Exemplo n.º 8
0
 /// <summary>
 /// Constructor
 /// </summary>
 public InProcessServiceBus()
 {
     _subcriptionManager    = new InMemorySubscriptionsManager();
     _requestHandlerManager = new InMemoryRequestHandlerManager();
 }