Exemple #1
0
 public EventBus(IMqConnection connection,
                 ILogger <EventBus> logger,
                 IEventBusSubscriptionsManager subsManager,
                 IServiceProvider serviceProvider,
                 string queueName)
 {
     _connection      = connection;
     _logger          = logger;
     _queueName       = queueName;
     _consumerChannel = CreateConsumerChannel();
     _subsManager     = subsManager;
     _serviceProvider = serviceProvider;
 }
Exemple #2
0
        public MqServerRequestContext(IMqConnection mqConnection, IFeatureCollection serverFeatures)
        {
            _mqConnection   = mqConnection ?? throw new ArgumentNullException(nameof(mqConnection));
            _serverFeatures = serverFeatures ?? throw new ArgumentNullException(nameof(serverFeatures));

            _pathBaseBase = "/";
            if (_mqConnection.VirtualHost != null)
            {
                _pathBaseBase += Uri.EscapeDataString(_mqConnection.VirtualHost);
            }
            else
            {
                _pathBaseBase += Uri.EscapeDataString("/");
            }
        }
        public async Task ProcessRequestAsync <TContext>(IMqConnection connection, IHttpApplication <TContext> application, IMqRequestFeature requestFeature)
        {
            try
            {
                var serverContext = _serverContextFactory.CreateContext(connection);
                serverContext.InitializeRequest(requestFeature);
                var features = serverContext.Features;

                var       context          = application.CreateContext(features);
                Exception contextException = null;
                try
                {
                    Exception requestException = null;
                    try
                    {
                        await application.ProcessRequestAsync(context);
                    }
                    catch (Exception ex)
                    {
                        requestException = ex;
                        _logger.LogError(ex, "Request processing error");
                    }

                    if (requestException != null)
                    {
                        serverContext.SetError(StatusCodes.Status500InternalServerError, requestException);
                    }

                    await serverContext.SendResponseAsync();
                }
                catch (Exception ex)
                {
                    contextException = ex;
                    throw;
                }
                finally
                {
                    application.DisposeContext(context, contextException);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Processing error");
            }
        }
        public IMqServerRequestContext CreateContext(IMqConnection connection)
        {
            var context = new MqServerRequestContext(connection, ServerFeatures);

            return(context);
        }
Exemple #5
0
 public MqConsumer(IMqConnection connection, IMqRequestProcessor requestProcessor) : base(connection?.Model)
 {
     _connection       = connection;
     _requestProcessor = requestProcessor;
 }
 public abstract Task ProcessRequestAsync(IMqConnection connection, IMqRequestFeature requestFeature);