コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RuntimeApiTraceLog"/> class.
 /// </summary>
 internal RuntimeApiTraceLog(RuntimeApiTraceLog parent, string methodFullName, Dictionary<string, object> methodParameters, DateTime? entryStamp)
 {
     this.Parent = parent;
     this.MethodFullName = methodFullName;
     this.MethodParameters = methodParameters;
     this.EntryStamp = entryStamp;
     this.Children = new List<RuntimeApiTraceLog>();
 }
コード例 #2
0
        /// <summary>
        /// To the trace log.
        /// </summary>
        /// <param name="methodInfo">The method information.</param>
        /// <param name="parameters">The parameters.</param>
        /// <param name="parent">The parent.</param>
        /// <param name="entryStamp">The entry stamp.</param>
        /// <returns>Beyova.ApiTracking.RuntimeApiTraceLog.</returns>
        internal static RuntimeApiTraceLog ToTraceLog(this MethodInfo methodInfo, List<object> parameters, RuntimeApiTraceLog parent, DateTime? entryStamp = null)
        {
            if (methodInfo != null)
            {
                return new RuntimeApiTraceLog(parent, methodInfo.GetFullName(), ToMethodParameters(methodInfo, parameters.ToArray()), entryStamp);
            }

            return null;
        }
コード例 #3
0
        /// <summary>
        /// To the trace log.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="parent">The parent.</param>
        /// <param name="entryStamp">The entry stamp.</param>
        /// <returns>Beyova.ApiTracking.ApiTraceLog.</returns>
        internal static RuntimeApiTraceLog ToTraceLog(this RuntimeContext context, RuntimeApiTraceLog parent, DateTime? entryStamp = null)
        {
            if (context != null)
            {
                return new RuntimeApiTraceLog(parent, context.ApiMethod?.GetFullName(), new Dictionary<string, object> {
                        { "UrlParameter",context.IsActionUsed ? context.Parameter2 : context.Parameter1} },
                        entryStamp);
            }

            return null;
        }
コード例 #4
0
 /// <summary>
 /// Disposes this instance.
 /// </summary>
 public static void Dispose()
 {
     _current = null;
     _root = null;
     TraceId = null;
 }
コード例 #5
0
        /// <summary>
        /// Converts the API trace log piece.
        /// </summary>
        /// <param name="apiTraceLog">The API trace log.</param>
        /// <returns>ApiTraceLogPiece.</returns>
        private static ApiTraceLogPiece ConvertApiTraceLogPiece(RuntimeApiTraceLog apiTraceLog)
        {
            if (apiTraceLog != null)
            {
                var result = new ApiTraceLogPiece
                {
                    EntryStamp = apiTraceLog.EntryStamp,
                    Exception = apiTraceLog.Exception,
                    ExitStamp = apiTraceLog.ExitStamp,
                    MethodFullName = apiTraceLog.MethodFullName,
                    MethodParameters = apiTraceLog.MethodParameters
                };

                foreach (var one in apiTraceLog.Children)
                {
                    result.InnerTraces.Add(ConvertApiTraceLog(one));
                }

                return result;
            }

            return null;
        }
コード例 #6
0
 /// <summary>
 /// Initializes the specified context.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="traceId">The trace identifier.</param>
 /// <param name="entryStamp">The entry stamp.</param>
 internal static void Initialize(RuntimeContext context, string traceId, DateTime? entryStamp = null)
 {
     if (!string.IsNullOrWhiteSpace(traceId))
     {
         _root = _current = context.ToTraceLog(null, entryStamp);
         TraceId = traceId;
     }
 }
コード例 #7
0
 /// <summary>
 /// Enters the specified trace log.
 /// </summary>
 /// <param name="traceLog">The trace log.</param>
 internal static void Enter(RuntimeApiTraceLog traceLog)
 {
     if (traceLog != null)
     {
         if (_root != null)
         {
             traceLog.Parent = _current;
             _current.Children.Add(traceLog);
             _current = traceLog;
         }
     }
 }
コード例 #8
0
 /// <summary>
 /// Initializes the specified method.
 /// </summary>
 /// <param name="method">The method.</param>
 /// <param name="traceId">The trace identifier.</param>
 /// <param name="parameters">The parameters.</param>
 /// <param name="entryStamp">The entry stamp.</param>
 public static void Initialize(MethodInfo method, string traceId, List<object> parameters, DateTime? entryStamp = null)
 {
     if (!string.IsNullOrWhiteSpace(traceId))
     {
         _root = _current = method.ToTraceLog(parameters, null, entryStamp);
         TraceId = traceId;
     }
 }
コード例 #9
0
        /// <summary>
        /// To the trace log.
        /// </summary>
        /// <param name="methodCallMessage">The method call message.</param>
        /// <param name="parent">The parent.</param>
        /// <param name="entryStamp">The entry stamp.</param>
        /// <returns>Beyova.ApiTracking.RuntimeApiTraceLog.</returns>
        internal static RuntimeApiTraceLog ToTraceLog(this IMethodCallMessage methodCallMessage, RuntimeApiTraceLog parent, DateTime? entryStamp = null)
        {
            if (methodCallMessage != null)
            {
                return new RuntimeApiTraceLog(parent, methodCallMessage.MethodBase.GetFullName(), methodCallMessage.ToMethodParameters(), entryStamp);
            }

            return null;
        }