namespace TorrentConsumer.Features.TorrentIngestion; public class PerformIngestionConsumer(IDataStorage dataStorage, ILogger logger, IBus messageBus) : IConsumer { public async Task Consume(ConsumeContext context) { var request = context.Message; logger.LogInformation("Performing ingestion actions for infoHash {InfoHash} in Saga {SagaId}", request.IngestedTorrent.InfoHash, request.CorrelationId); var torrent = new Torrent { InfoHash = request.IngestedTorrent.InfoHash.ToLowerInvariant(), IngestedTorrentId = request.IngestedTorrent.Id, Provider = request.IngestedTorrent.Source, Title = request.IngestedTorrent.Name, Type = request.IngestedTorrent.Category, Seeders = request.IngestedTorrent.Seeders, Reviewed = false, Opened = false, }; await dataStorage.InsertTorrent(torrent); await messageBus.Publish(new IngestionCompleted(request.CorrelationId, torrent)); } }