protected internal void HandleStopEvent(HttpContext context)
        {
            var spanContext = active.Value;
            if (spanContext == null)
            {
                Logger?.LogDebug("HandleStopEvent: Missing span context");
                return;
            }

            ISpan span = spanContext.Active;
            span.PutHttpStatusCodeAttribute(context.Response.StatusCode);

            if (context.Response.Headers != null)
            {
                span.PutHttpResponseHeadersAttribute(AsList(context.Response.Headers));
            }

            long? reqSize = ExtractRequestSize(context);
            if (reqSize != null)
            {
                span.PutHttpRequestSizeAttribute(reqSize.Value);
            }

            long? respSize = ExtractResponseSize(context);
            if (respSize != null)
            {
                span.PutHttpResponseSizeAttribute(respSize.Value);
            }

            span.End();

            AsyncLocalContext.CurrentSpan = spanContext.Previous;
            active.Value = null;
        }
        protected internal void HandleStopEvent(HttpContext context)
        {
            var spanContext = ActiveValue.Value;

            if (spanContext == null)
            {
                Logger?.LogDebug("HandleStopEvent: Missing span context");
                return;
            }

            ISpan  span  = spanContext.Active;
            IScope scope = spanContext.ActiveScope;

            span.PutHttpStatusCodeAttribute(context.Response.StatusCode);

            if (context.Response.Headers != null)
            {
                span.PutHttpResponseHeadersAttribute(AsList(context.Response.Headers));
            }

            long?reqSize = ExtractRequestSize(context);

            if (reqSize != null)
            {
                span.PutHttpRequestSizeAttribute(reqSize.Value);
            }

            long?respSize = ExtractResponseSize(context);

            if (respSize != null)
            {
                span.PutHttpResponseSizeAttribute(respSize.Value);
            }

            scope.Dispose();
            ActiveValue.Value = null;
        }