private static void InsertProgramsMySql(ImportParams aImportParam)
{
MySqlTransaction transact = null;
try
{
using (MySqlConnection connection = new MySqlConnection(aImportParam.ConnectString))
{
DeleteProgramsDelegate deletePrograms = null;
switch (aImportParam.ProgamsToDelete)
{
case DeleteBeforeImportOption.OverlappingPrograms:
IEnumerable<ProgramListPartition> partitions = aImportParam.ProgramList.GetPartitions();
deletePrograms =
() => ExecuteDeleteProgramsMySqlCommand(partitions, connection, transact, aImportParam.SleepTime);
break;
case DeleteBeforeImportOption.ProgramsOnSameChannel:
IEnumerable<int> channelIds = aImportParam.ProgramList.GetChannelIds();
deletePrograms =
() => ExecuteDeleteProgramsMySqlCommand(channelIds, connection, transact, aImportParam.SleepTime);
break;
}
connection.Open();
transact = connection.BeginTransaction();
if (deletePrograms != null)
{
deletePrograms();
}
ExecuteInsertProgramsMySqlCommand(aImportParam.ProgramList, connection, transact, aImportParam.SleepTime);
transact.Commit();
//OptimizeMySql("Program");
}
}
catch (Exception ex)
{
try
{
if (transact != null)
{
transact.Rollback();
}
}
catch (Exception ex2)
{
Log.Info("BusinessLayer: InsertSqlServer unsuccessful - ROLLBACK - {0}, {1}", ex2.Message, ex2.StackTrace);
}
Log.Info("BusinessLayer: InsertMySql caused an Exception - {0}, {1}", ex.Message, ex.StackTrace);
}
}