2026-06-23 19:03:31 +01:00

29 lines
860 B
C#

using Solicitors.Core.Data;
using Solicitors.Core.Models.Imports;
namespace Solicitors.CacheBuild;
internal class SolicitorImporter : ISolicitorImporter
{
private readonly ISolicitorParser _parser;
private readonly ISolicitorRepository _repository;
public SolicitorImporter(
ISolicitorParser parser,
ISolicitorRepository repository)
{
_parser = parser;
_repository = repository;
}
public async Task RunFullImport(CancellationToken cancellationToken)
{
foreach (var solicitor in await _parser.GetSolicitorsAsync(cancellationToken))
{
await RunImport(solicitor, cancellationToken);
}
}
private Task RunImport(SolicitorData solicitor, CancellationToken cancellationToken)
=> _repository.AddOrUpdateSolicitorAsync(solicitor, cancellationToken);
}