public static async Task SafeInvoke(this TraceCallbackResult result, Func <TraceCallbackResult, Task> callback)
 {
     if (callback == null)
     {
         return;
     }
     await callback(result);
 }
Exemplo n.º 2
0
        public async Task SetTags(SetTagArgs args)
        {
            var clientTracer = _factory.GetTracer(args.TraceId);

            if (clientTracer != null)
            {
                var clientSpan = await clientTracer.GetSpan(args);

                if (clientSpan != null)
                {
                    clientSpan.SetTags(args.Tags);
                    await TraceCallbackResult.MethodResult(nameof(SetTags), true, args).SafeInvoke(SetTagsCallback);

                    return;
                }
            }
            await TraceCallbackResult.MethodResult(nameof(SetTags), false, args).SafeInvoke(SetTagsCallback);
        }
Exemplo n.º 3
0
        public async Task FinishSpan(FinishSpanArgs args)
        {
            var clientTracer = _factory.GetTracer(args.TraceId);

            if (clientTracer != null)
            {
                var clientSpan = await clientTracer.GetSpan(args);

                if (clientSpan != null)
                {
                    clientSpan.Finish();
                    await TraceCallbackResult.MethodResult(nameof(FinishSpan), true, args).SafeInvoke(FinishSpanCallback);

                    return;
                }
            }
            await TraceCallbackResult.MethodResult(nameof(FinishSpan), false, args).SafeInvoke(FinishSpanCallback);
        }
Exemplo n.º 4
0
        public async Task StartSpan(StartSpanArgs args)
        {
            var clientTracer = _factory.GetTracer(args.TraceId);

            if (clientTracer != null)
            {
                var clientSpan = await clientTracer.StartSpan(args);

                if (clientSpan != null)
                {
                    await TraceCallbackResult.MethodResult(nameof(StartSpan), true, args).AutoSet(clientSpan)
                    .SafeInvoke(StartSpanCallback);

                    return;
                }
            }

            await TraceCallbackResult.MethodResult(nameof(StartSpan), false, args).SafeInvoke(StartSpanCallback);
        }