38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
using FictionArchive.Service.NovelService.Services;
|
|
using FictionArchive.Service.Shared.Contracts.Events;
|
|
using MassTransit;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace FictionArchive.Service.NovelService.Consumers;
|
|
|
|
public class ChapterPullRequestedConsumer : IConsumer<IChapterPullRequested>
|
|
{
|
|
private readonly ILogger<ChapterPullRequestedConsumer> _logger;
|
|
private readonly NovelUpdateService _novelUpdateService;
|
|
|
|
public ChapterPullRequestedConsumer(
|
|
ILogger<ChapterPullRequestedConsumer> logger,
|
|
NovelUpdateService novelUpdateService)
|
|
{
|
|
_logger = logger;
|
|
_novelUpdateService = novelUpdateService;
|
|
}
|
|
|
|
public async Task Consume(ConsumeContext<IChapterPullRequested> context)
|
|
{
|
|
var message = context.Message;
|
|
|
|
var (chapter, imageCount) = await _novelUpdateService.PullChapterContents(
|
|
message.ImportId,
|
|
message.NovelId,
|
|
message.VolumeId,
|
|
message.ChapterOrder);
|
|
|
|
await context.Publish<IChapterPullCompleted>(new ChapterPullCompleted(
|
|
message.ImportId,
|
|
chapter.Id,
|
|
imageCount
|
|
));
|
|
}
|
|
}
|