29 lines
860 B
C#
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);
|
|
} |