protected override int? Execute(OperationExecutionToken<NpgsqlConnection, NpgsqlTransaction> executionToken, OperationImplementation<NpgsqlConnection, NpgsqlTransaction> implementation, object state)
{
if (executionToken == null)
throw new ArgumentNullException("executionToken", "executionToken is null.");
if (implementation == null)
throw new ArgumentNullException("implementation", "implementation is null.");
var startTime = DateTimeOffset.Now;
OnExecutionStarted(executionToken, startTime, state);
try
{
using (var con = CreateConnection())
{
var rows = implementation(con, null);
OnExecutionFinished(executionToken, startTime, DateTimeOffset.Now, rows, state);
return rows;
}
}
catch (Exception ex)
{
OnExecutionError(executionToken, startTime, DateTimeOffset.Now, ex, state);
throw;
}
}