/// <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"); } } }