using ErsatzTV.Core.Domain; using ErsatzTV.Core.Interfaces.Repositories; using Serilog.Events; namespace ErsatzTV.Application.Configuration; public class GetGeneralSettingsHandler : IRequestHandler { private readonly IConfigElementRepository _configElementRepository; public GetGeneralSettingsHandler(IConfigElementRepository configElementRepository) => _configElementRepository = configElementRepository; public async Task Handle(GetGeneralSettings request, CancellationToken cancellationToken) { Option maybeDefaultLevel = await _configElementRepository.GetValue(ConfigElementKey.MinimumLogLevel); Option maybeScanningLevel = await _configElementRepository.GetValue(ConfigElementKey.MinimumLogLevelScanning); Option maybeSchedulingLevel = await _configElementRepository.GetValue(ConfigElementKey.MinimumLogLevelScheduling); Option maybeStreamingLevel = await _configElementRepository.GetValue(ConfigElementKey.MinimumLogLevelStreaming); Option maybeHttpLevel = await _configElementRepository.GetValue(ConfigElementKey.MinimumLogLevelHttp); return new GeneralSettingsViewModel { DefaultMinimumLogLevel = await maybeDefaultLevel.IfNoneAsync(LogEventLevel.Information), ScanningMinimumLogLevel = await maybeScanningLevel.IfNoneAsync(LogEventLevel.Information), SchedulingMinimumLogLevel = await maybeSchedulingLevel.IfNoneAsync(LogEventLevel.Information), StreamingMinimumLogLevel = await maybeStreamingLevel.IfNoneAsync(LogEventLevel.Information), HttpMinimumLogLevel = await maybeHttpLevel.IfNoneAsync(LogEventLevel.Information) }; } }