TvDatabase.TvBusinessLayer.InsertProgramsSqlServer C# (CSharp) Method

InsertProgramsSqlServer() private static method

private static InsertProgramsSqlServer ( ImportParams aImportParam ) : void
aImportParam ImportParams
return void
    private static void InsertProgramsSqlServer(ImportParams aImportParam)
    {
      SqlTransaction transact = null;
      try
      {
        using (SqlConnection connection = new SqlConnection(aImportParam.ConnectString))
        {
          DeleteProgramsDelegate deletePrograms = null;

          switch (aImportParam.ProgamsToDelete)
          {
            case DeleteBeforeImportOption.OverlappingPrograms:
              IEnumerable<ProgramListPartition> partitions = aImportParam.ProgramList.GetPartitions();
              deletePrograms =
                () => ExecuteDeleteProgramsSqlServerCommand(partitions, connection, transact, aImportParam.SleepTime);
              break;
            case DeleteBeforeImportOption.ProgramsOnSameChannel:
              IEnumerable<int> channelIds = aImportParam.ProgramList.GetChannelIds();
              deletePrograms =
                () => ExecuteDeleteProgramsSqlServerCommand(channelIds, connection, transact, aImportParam.SleepTime);
              break;
          }
          connection.Open();
          transact = connection.BeginTransaction();
          if (deletePrograms != null)
          {
            deletePrograms();
          }
          ExecuteInsertProgramsSqlServerCommand(aImportParam.ProgramList, connection, transact, aImportParam.SleepTime);
          transact.Commit();
        }
      }
      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: InsertSqlServer caused an Exception - {0}, {1}", ex.Message, ex.StackTrace);
      }
    }
TvBusinessLayer