예제 #1
0
 /// <summary>
 ///     Creates an instance of <see cref="TraceContext" /> based on the specified parameter name and value.
 /// </summary>
 /// <param name="parameterName">The parameter name.</param>
 /// <param name="parameterValue">The parameter value.</param>
 /// <returns>The new instance of <see cref="TraceContext" />.</returns>
 public static TraceContext Create <T>(string parameterName, T parameterValue)
 {
     if (parameterName == null)
     {
         throw new ArgumentNullException(nameof(parameterName));
     }
     return(Create(TraceParameter.Create(parameterName, parameterValue)));
 }
예제 #2
0
        /// <summary>
        ///     Adds the specified parameter name and value to the current <see cref="TraceContext" />.
        /// </summary>
        /// <param name="parameterName">The parameter name.</param>
        /// <param name="parameterValue">The parameter value.</param>
        /// <returns>The current instance of <see cref="TraceContext" />.</returns>
        public TraceContext Add <T>(string parameterName, T parameterValue)
        {
            if (parameterName == null)
            {
                throw new ArgumentNullException(nameof(parameterName));
            }
            ITraceable traceableObject = parameterValue as ITraceable;

            if (traceableObject != null)
            {
                Add(TraceParameter.CreateCollection(parameterName, traceableObject));
            }
            else
            {
                _parameters.Add(TraceParameter.Create(parameterName, parameterValue));
            }
            return(this);
        }
예제 #3
0
        /// <summary>
        ///     Creates an instance of <see cref="TraceContext" /> based on the specified <see cref="IDbCommand" />.
        /// </summary>
        /// <param name="command">The specified <see cref="IDbCommand" />.</param>
        /// <returns>The new instance of <see cref="TraceContext" />.</returns>
        public static TraceContext Create(IDbCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException(nameof(command));
            }
            TraceParameter parameter1      = TraceParameter.Create(SqlCommandTimeout, command.CommandTimeout);
            string         sqlCommandValue = string.Format(CultureInfo.InvariantCulture, "EXEC {0} ", command.CommandText);

            if (command.Parameters != null && command.Parameters.Count > 0)
            {
                sqlCommandValue +=
                    command.Parameters.OfType <IDataParameter>().Select(p => DataParameterAsString(p)).Aggregate(AggregateDataParameterStrings);
            }
            TraceParameter parameter2 = TraceParameter.Create(SqlCommand, sqlCommandValue);

            return(Create(parameter2, parameter1));
        }