public void OnBeginExecuteCallback(long id, string dataSource, string database, string commandText)
{
try
{
var resourceName = this.GetResourceName(dataSource, database, commandText);
DependencyCollectorEventSource.Log.BeginCallbackCalled(id, resourceName);
if (string.IsNullOrEmpty(resourceName))
{
DependencyCollectorEventSource.Log.NotExpectedCallback(id, "OnBeginSql", "resourceName is empty");
return;
}
var telemetryTuple = this.TelemetryTable.Get(id);
if (telemetryTuple == null)
{
bool isCustomCreated = false;
var telemetry = ClientServerDependencyTracker.BeginTracking(this.telemetryClient);
telemetry.Name = resourceName;
telemetry.Target = string.Join(" | ", dataSource, database);
telemetry.Type = RemoteDependencyConstants.SQL;
telemetry.Data = commandText;
this.TelemetryTable.Store(id, new Tuple<DependencyTelemetry, bool>(telemetry, isCustomCreated));
}
}
catch (Exception exception)
{
DependencyCollectorEventSource.Log.CallbackError(id, "OnBeginSql", exception);
}
}