public void Dispose()
 {
     if (!isDisposed)
     {
         isDisposed = true;
         if (traceMessages.Count > 0)
         {
             telemetryLogger.Trace(traceMessages.ToJson(), telemetryScopedProperties.Properties.ConcatOnce(new Dictionary <string, string> {
                 { "type", nameof(TelemetryScopedLogger.ScopeTrace) }
             }));
             tenantTrackLogger.Trace(traceMessages.ToJson(), telemetryScopedProperties.Properties);
         }
     }
 }
        public void Dispose()
        {
            if (!isDisposed)
            {
                isDisposed = true;
                if (RouteBinding?.Logging != null && traceMessages.Count > 0)
                {
                    if (RouteBinding.Logging.ScopedLogger != null)
                    {
                        var scopedLogger = RouteBinding.Logging.ScopedLogger;
                        var telemetryLoggertraceMessages = traceMessages.Where(m =>
                                                                               (m.TraceType == TraceTypes.Info && scopedLogger.LogInfoTrace) ||
                                                                               (m.TraceType == TraceTypes.Claim && scopedLogger.LogClaimTrace) ||
                                                                               (m.TraceType == TraceTypes.Message && scopedLogger.LogMessageTrace));
                        if (telemetryLoggertraceMessages.Count() > 0)
                        {
                            telemetryLogger.Trace(telemetryLoggertraceMessages.ToJson(), telemetryScopedProperties.Properties.ConcatOnce(new Dictionary <string, string> {
                                { Constants.Logs.Type, nameof(TelemetryScopedLogger.ScopeTrace) }
                            }));
                        }
                    }

                    if (RouteBinding.Logging.ScopedStreamLoggers?.Count() > 0)
                    {
                        foreach (var scopedStreamLogger in RouteBinding.Logging.ScopedStreamLoggers)
                        {
                            var scopedStreamLoggertraceMessages = traceMessages.Where(m =>
                                                                                      (m.TraceType == TraceTypes.Info && scopedStreamLogger.LogInfoTrace) ||
                                                                                      (m.TraceType == TraceTypes.Claim && scopedStreamLogger.LogClaimTrace) ||
                                                                                      (m.TraceType == TraceTypes.Message && scopedStreamLogger.LogMessageTrace));
                            if (scopedStreamLoggertraceMessages.Count() > 0)
                            {
                                telemetryScopedStreamLogger.Trace(scopedStreamLogger, scopedStreamLoggertraceMessages.ToJson(), telemetryScopedProperties.Properties);
                            }
                        }
                    }
                }
            }
        }