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); }