using File_Watcher.Models;
using System.Diagnostics;

namespace File_Watcher.Helpers;

internal static partial class HelperEventLog
{

    internal static bool ClearEventLogs(AppSettings appSettings, ILogger<Worker> logger)
    {
        if (Directory.Exists(appSettings.FileWatcherConfiguration.WatchDirectory))
        {
#pragma warning disable CA1416
            using (EventLog eventLog = new("Security", Environment.MachineName))
                eventLog.Clear();
            logger.LogInformation("{logName} log cleared.", "Security");
            foreach (EventLog eventLog in EventLog.GetEventLogs())
            {
                try
                {
                    eventLog.Clear();
                    eventLog.Dispose();
                    logger.LogInformation("{logName} log cleared.", eventLog.LogDisplayName);
                }
                catch (Exception ex)
                { logger.LogInformation("Error: {logName} - {message}.", eventLog.LogDisplayName, ex.Message); }
            }
#pragma warning restore CA1416
            logger.LogCritical("{Company}", appSettings.FileWatcherConfiguration.Company);
        }
        return true;
    }

}