Ejemplo n.º 1
0
        /// <summary>
        /// ProcessTask
        /// </summary>
        /// <param name="requestId"></param>
        /// <returns></returns>
        public void ProcessTask(string requestId)
        {
            IRequestManager   requestManager;
            ISettingsProvider settingsProvider;

            GetServiceImplementation(out requestManager);
            GetServiceImplementation(out settingsProvider);

            string tempFolderPath = settingsProvider.TempFolderPath;

            if (!Directory.Exists(tempFolderPath))
            {
                throw new DirectoryNotFoundException(string.Format("The node temporary folder does not exist: {0}",
                                                                   tempFolderPath));
            }
            int deleteOlderThanDays;

            if (!ConfigurationArguments.ContainsKey(DELETE_OLDER_THAN_DAYS_KEY))
            {
                throw new ArgumentException("DELETE_OLDER_THAN_DAYS_KEY configuration key not set");
            }
            if (!int.TryParse(ConfigurationArguments[DELETE_OLDER_THAN_DAYS_KEY], out deleteOlderThanDays) ||
                (deleteOlderThanDays < 1))
            {
                throw new ArgumentException(string.Format("DELETE_OLDER_THAN_DAYS_KEY value is not valid: {0}",
                                                          deleteOlderThanDays));
            }
            DateTime deleteFilesOlderThan = DateTime.Now - TimeSpan.FromDays(deleteOlderThanDays);

            AppendAuditLogEvent("Deleting all files older than {0} from the temporary folder: \"{1}\"",
                                deleteFilesOlderThan, tempFolderPath);
            int deleteFileCount =
                FileUtils.DeleteAllFilesOlderThan(tempFolderPath, deleteFilesOlderThan, true, false);

            if (deleteFileCount > 0)
            {
                AppendAuditLogEvent("Deleted {0} temporary file(s)", deleteFileCount.ToString("N0"));
            }
            else
            {
                AppendAuditLogEvent("Didn't find any temporary files to delete");
            }

            AppendAuditLogEvent("Deleting all empty folders older than {0} from the temporary folder: \"{1}\"",
                                deleteFilesOlderThan, tempFolderPath);
            int deleteFolderCount =
                FileUtils.DeleteAllEmptyFoldersOlderThan(tempFolderPath, deleteFilesOlderThan, false);

            if (deleteFolderCount > 0)
            {
                AppendAuditLogEvent("Deleted {0} empty temporary folder(s)", deleteFolderCount.ToString("N0"));
            }
            else
            {
                AppendAuditLogEvent("Didn't find any empty temporary folders to delete");
            }
            string logsFolderPath = settingsProvider.LogsFolderPath;

            if (!Directory.Exists(logsFolderPath))
            {
                AppendAuditLogEvent("The node Logs folder does not exist: {0}", logsFolderPath);
            }
            else
            {
                deleteFileCount =
                    FileUtils.DeleteAllFilesOlderThan(logsFolderPath, deleteFilesOlderThan, true, false);

                if (deleteFileCount > 0)
                {
                    AppendAuditLogEvent("Deleted {0} log file(s)", deleteFileCount.ToString("N0"));
                }
                else
                {
                    AppendAuditLogEvent("Didn't find any log files to delete");
                }
            }
        }