in sdk/src/Core/Internal/Entities/TraceHeader.cs [207:237]
public static bool TryParse(Entity entity, out TraceHeader header)
{
header = null;
if (entity == null)
{
_logger.DebugFormat("Failed to parse TraceHeader because segment is null.");
return false;
}
if (string.IsNullOrEmpty(entity.Id))
{
_logger.DebugFormat("Failed to parse TraceHeader because segment id is null or empty.");
return false;
}
if (string.IsNullOrEmpty(entity.RootSegment.TraceId))
{
_logger.DebugFormat("Failed to parse TraceHeader because trace id is null or empty.");
return false;
}
var newHeader = new TraceHeader();
// Trace id doesn't exist in subsegment, so get it from rootsegment
newHeader.RootTraceId = entity.RootSegment.TraceId;
newHeader.ParentId = entity.Id;
newHeader.Sampled = entity.Sampled;
header = newHeader;
return true;
}