refactor: split EpubService into EpubReaderService and EpubMetadataExtractor (SRP)

This commit is contained in:
2026-05-11 18:07:30 +00:00
parent 0e2c275de7
commit bb7207b7ef
@@ -10,13 +10,13 @@ using NexusReader.Domain.Entities;
namespace NexusReader.Infrastructure.Services; namespace NexusReader.Infrastructure.Services;
public class EpubService : IEpubService public class EpubReaderService : IEpubReader
{ {
private readonly IDbContextFactory<AppDbContext> _dbContextFactory; private readonly IDbContextFactory<AppDbContext> _dbContextFactory;
private const string EpubPath = "wwwroot/assets/book.epub"; private const string EpubPath = "wwwroot/assets/book.epub";
private const int WordThreshold = 1000; private const int WordThreshold = 1000;
public EpubService(IDbContextFactory<AppDbContext> dbContextFactory) public EpubReaderService(IDbContextFactory<AppDbContext> dbContextFactory)
{ {
_dbContextFactory = dbContextFactory; _dbContextFactory = dbContextFactory;
} }
@@ -215,6 +215,10 @@ public class EpubService : IEpubService
} }
return null; return null;
} }
}
public class EpubMetadataExtractor : IEpubMetadataExtractor
{
public async Task<Result<LocalEpubMetadata>> ExtractMetadataAsync(Stream epubStream) public async Task<Result<LocalEpubMetadata>> ExtractMetadataAsync(Stream epubStream)
{ {
try try