/// <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))); }
/// <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); }
/// <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)); }