namespace EnvelopeGenerator.Service; /// /// Service-level temp file management. Mirrors TempFiles.vb from the legacy project. /// Manages %TEMP%\EnvelopeGenerator at host startup and shutdown. /// /// NOTE: This is independent from EnvelopeGenerator.CommonServices.TempFiles, which is /// instantiated inside each Quartz job via . /// Do not confuse the two. /// public sealed class TempFiles { private readonly ILogger _logger; public string TempPath { get; } public TempFiles(ILogger logger) { _logger = logger; TempPath = Path.Combine(Path.GetTempPath(), "EnvelopeGenerator"); } public bool Create() { try { if (!Directory.Exists(TempPath)) { Directory.CreateDirectory(TempPath); } else { CleanUpFiles(); } return true; } catch (Exception ex) { _logger.LogError(ex, "Failed to create temp directory: {TempPath}", TempPath); return false; } } private void CleanUpFiles() { try { foreach (var file in Directory.GetFiles(TempPath)) { _logger.LogDebug("Deleting temp file: {File}", file); File.Delete(file); } } catch (Exception ex) { _logger.LogError(ex, "Failed to clean up temp files in: {TempPath}", TempPath); } } public bool CleanUp() { try { _logger.LogDebug("Deleting temp directory: {TempPath}", TempPath); Directory.Delete(TempPath, recursive: true); return true; } catch (Exception ex) { _logger.LogError(ex, "Failed to delete temp directory: {TempPath}", TempPath); return false; } } }