private bool GetSampled(SegmentContext parentSegmentContext, string operationName,
                                string peer = default(string))
        {
            if (parentSegmentContext != null)
            {
                return(parentSegmentContext.Sampled);
            }
            var sampledContext = new SamplingContext(operationName, peer, operationName, default(string));
            var sampler        = _samplerChainBuilder.Build();

            return(sampler(sampledContext));
        }
        private bool GetSampled(ICarrier carrier, string operationName)
        {
            if (carrier.HasValue && carrier.Sampled.HasValue)
            {
                return(carrier.Sampled.Value);
            }

            SamplingContext samplingContext;

            if (carrier.HasValue)
            {
                samplingContext = new SamplingContext(operationName, carrier.NetworkAddress, carrier.EntryEndpoint, carrier.ParentEndpoint);
            }
            else
            {
                samplingContext = new SamplingContext(operationName, default(string), default(string), default(string));
            }

            var sampler = _samplerChainBuilder.Build();

            return(sampler(samplingContext));
        }