Пример #1
0
        public ApiFunctionTelemetryInitializer(IMetadataResolver metadataResolver)
        {
            if (metadataResolver is null)
            {
                throw new System.ArgumentNullException(nameof(metadataResolver));
            }

            _metadata = metadataResolver.GetMetadata();
        }
#pragma warning disable CS0618 // Type or member is obsolete: in preview
        public Task OnExecutingAsync(FunctionExecutingContext executingContext, CancellationToken cancellationToken)
#pragma warning restore CS0618 // Type or member is obsolete
        {
            var httpContext = _httpContextAccessor.HttpContext;

            if (httpContext != null)
            {
                var metadata = _metadataResolver.GetMetadata();
                httpContext.Response.Headers.Add(ApiVersionResponseHeader, metadata.Version);
                httpContext.Response.Headers.Add(ApiNameResponseHeader, metadata.Component);
                var correlationId = Activity.Current?.RootId;
                if (!string.IsNullOrEmpty(correlationId))
                {
                    httpContext.Response.Headers.Add(ApiCorrelationIdResponseReader, correlationId);
                }
            }

            return(Task.CompletedTask);
        }