using Microsoft.Extensions.Options; using Serilog; using System.Threading.Channels; using TriliumMind.Models; using TriliumMind.Services; namespace TriliumMind.Workers; public class TriliumWorker : BackgroundService { private readonly Serilog.ILogger _log; private readonly AppConfigs _config; private readonly TriliumService _triliumService; private readonly Channel _issueChannel; public TriliumWorker(AppConfigs configs, TriliumService triliumService, Channel issueChannel) { _log = Log.ForContext(); _config = configs; _triliumService = triliumService; _issueChannel = issueChannel; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { await foreach(var item in _issueChannel.Reader.ReadAllAsync(stoppingToken)) { _log.Information("Processing issue {issue_key} - {issue_summary}", item.key, item.fields.summary); // Add your processing logic here //await _triliumService.FettchPageContentsAsync(item); } } }