public void Execute()
        {
            // Verifica se as dependências foram instanciadas (se o método InitializeTaskState foi chamado)
            if (taskParams == null)
            {
                return;
            }
            if (dataAccess == null)
            {
                return;
            }
            if (notifications == null)
            {
                return;
            }
            if (fileLogger == null)
            {
                return;
            }

            // Verifica os parâmetros recebidos
            String        logDirectory = taskParams["logDirectory"];
            DirectoryInfo dirInfo      = new DirectoryInfo(logDirectory);

            dataAccess.OpenConnection();

            // "lastAccess" é gravado e recuperado do banco com frequência, logo não pode ser obtido de "taskParams"
            CopyLogAccess copyLogAccess = new CopyLogAccess(dataAccess.GetConnection());
            DateTime      lastAccess    = copyLogAccess.GetLastAccess();

            // Inicializa o parâmetro "lastAccess" na primeira execução ou quando estiver desatualizado
            if (firstExecution || copyLogAccess.IsOutOfDate(lastAccess))
            {
                copyLogAccess.SetLastAccess(DateTime.Now);
                firstExecution = false;
                dataAccess.CloseConnection();
                return;
            }

            // Não processa (sai do método) se a tarefa já foi executada hoje
            if (DateTime.Now.Date.CompareTo(lastAccess) <= 0)
            {
                dataAccess.CloseConnection();
                return;
            }

            // Inicia o append no arquivo de log (acrescentando o "startingDelimiter")
            fileLogger.LogInfo("Importação de log - Iniciando execução...", true);
            // Procura os arquivos .CSV no diretório de logs, faz a importação e armazena um backup
            // do arquivo com a extensão .OLD
            fileLogger.LogInfo("Fazendo varredura de arquivos .CSV no diretório de logs: " + logDirectory);
            FileInfo[] files       = dirInfo.GetFiles();
            int        filesParsed = 0;

            foreach (FileInfo file in files)
            {
                if (Path.GetExtension(file.Name).ToUpper() == ".CSV")
                {
                    fileLogger.LogInfo("Processando arquivo: " + file.Name);
                    String filePath = PathFormat.Adjust(logDirectory);
                    String fileName = Path.GetFileNameWithoutExtension(file.Name);
                    ImportFile(filePath + fileName + ".csv");
                    CopyLogFile.StoreOldFile(filePath, fileName, ".csv");
                    filesParsed++;
                }
            }
            if (filesParsed == 0)
            {
                fileLogger.LogInfo("Nenhum arquivo processado( Não existem .CSVs no diretório).");
            }
            fileLogger.LogInfo("Execução concluída.");

            // Grava a data do último acesso no banco
            copyLogAccess.SetLastAccess(DateTime.Now);

            dataAccess.CloseConnection();
        }