public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            if (!_endpoints.TryGetValue(context.Request.Method, out var endpoints))
            {
                await next(context);
                return;
            }

            foreach (var endpoint in endpoints)
            {
                var match = _routeMatcher.Match(endpoint.Path, context.Request.Path);
                if (match is null)
                {
                    continue;
                }

                var key = $"{endpoint.Exchange}:{endpoint.RoutingKey}";
                if (!Conventions.TryGetValue(key, out var conventions))
                {
                    conventions = new MessageConventions(typeof(object), endpoint.RoutingKey, endpoint.Exchange, null);
                    Conventions.TryAdd(key, conventions);
                }

                var messageId = Guid.NewGuid().ToString("N");
                var correlationId = _correlationIdFactory.Create();
                var resourceId = Guid.NewGuid().ToString("N");
                var correlationContext = _correlationContextBuilder.Build(context, correlationId, default,
Beispiel #2
0
            public override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request,
                                                                       CancellationToken cancellationToken)
            {
                var correlationId = _correlationIdFactory.Create();

                request.Headers.TryAddWithoutValidation("x-correlation-id", correlationId);
                return(await base.SendAsync(request, cancellationToken));
            }
Beispiel #3
0
        public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            var correlationId = _correlationIdFactory.Create();

            using (LogContext.PushProperty("CorrelationId", correlationId))
            {
                await next(context);
            }
        }