public void Handle(IServerRequestAdapter adapter) { serverTracer.ClearCurrentSpan(); TraceData traceData = adapter.GetTraceData(); if (traceData.Sample.HasValue && !traceData.Sample.Value) { serverTracer.SetStateNoTracing(); } else { if (traceData.SpanId != null) { SpanId spanId = traceData.SpanId; serverTracer.SetStateCurrentTrace(spanId.TraceId, spanId.Id, spanId.ParentSpanId, adapter.GetSpanName()); } else { serverTracer.SetStateUnknown(adapter.GetSpanName()); } serverTracer.SetServerReceived(); foreach (KeyValueAnnotation annotation in adapter.RequestAnnotations()) { serverTracer.SubmitBinaryAnnotation(annotation.Key, annotation.Value); } } }