private static void ExecuteDeleteProgramsMySqlCommand(IEnumerable<int> channelIds, MySqlConnection aConnection,
MySqlTransaction aTransaction, int aDelay)
{
int aCounter = 0;
MySqlCommand sqlCmd = new MySqlCommand();
sqlCmd.CommandText =
"DELETE FROM Program WHERE idChannel = ?idChannel";
sqlCmd.Parameters.Add("?idChannel", MySqlDbType.Int32);
try
{
sqlCmd.Connection = aConnection;
sqlCmd.Transaction = aTransaction;
// Prepare the command since we will reuse it quite often
sqlCmd.Prepare();
}
catch (Exception ex)
{
Log.Info("BusinessLayer: ExecuteDeleteProgramsMySqlCommand - Prepare caused an Exception - {0}", ex.Message);
throw;
}
foreach (int idChannel in channelIds)
{
sqlCmd.Parameters["?idChannel"].Value = idChannel;
try
{
// Finally insert all our data
sqlCmd.ExecuteNonQuery();
aCounter++;
// Avoid I/O starving
if (aCounter % 3 == 0)
{
Thread.Sleep(aDelay);
}
}
catch (Exception ex)
{
Log.Info("BusinessLayer: ExecuteDeleteProgramsMySqlCommand caused an Exception - {0}, {1}", ex.Message,
ex.StackTrace);
throw;
}
}
return;
}