public async Task ImportJudiciaryPeopleAsync(DateTime fromDate) { var currentPage = 1; try { while (true) { _logger.LogInformation("ImportJudiciaryPeople: executing page {CurrentPage}", currentPage); var peopleResult = (await _eLinksApiClient.GetPeopleAsync(fromDate, currentPage)) .Where(x => x.Id.HasValue) .ToList(); if (!peopleResult.Any()) { _logger.LogWarning("ImportJudiciaryPeople: No results from api for page: {CurrentPage}", currentPage); break; } _logger.LogInformation("ImportJudiciaryPeople: Calling bookings API with {PeopleResultCount} people", peopleResult.Count); var response = await _bookingsApiClient.BulkJudiciaryPersonsAsync(peopleResult.Select(JudiciaryPersonRequestMapper.MapTo)); response?.ErroredRequests.ForEach(x => _logger.LogError("ImportJudiciaryPeople: {ErrorResponseMessage}", x.Message)); currentPage++; await Task.Delay(250); } } catch (Exception ex) { _logger.LogError(ex, ex.Message); throw; } }
public async Task ImportJudiciaryPeopleAsync(DateTime fromDate) { _logger.LogInformation("ImportJudiciaryPeople: using stub"); var peopleResult = RetrieveManualAccounts().Concat(RetrieveAutomationAccounts()).ToList(); _logger.LogInformation("ImportJudiciaryPeople: Calling bookings API with {PeopleResultCount} people", peopleResult.Count); var mapped = peopleResult.Select(JudiciaryPersonRequestMapper.MapTo); var response = await _bookingsApiClient.BulkJudiciaryPersonsAsync(mapped); response?.ErroredRequests.ForEach(x => _logger.LogError("ImportJudiciaryPeople: {ErrorResponseMessage}", x.Message)); }
public async Task ImportJudiciaryPeopleAsync(DateTime fromDate) { var currentPage = 1; try { while (true) { _logger.LogInformation("ImportJudiciaryPeople: Executing page {CurrentPage}", currentPage); var people = await _peoplesClient.GetPeopleAsync(fromDate, currentPage); var peopleResult = people .Where(x => x.Id.HasValue) .ToList(); if (peopleResult.Count == 0) { _logger.LogWarning("ImportJudiciaryPeople: No results from api for page: {CurrentPage}", currentPage); break; } var invalidCount = people.Count(x => !x.Id.HasValue); _logger.LogWarning($"ImportJudiciaryPeople: No of people who are invalid '{invalidCount}' in page '{currentPage}'."); _logger.LogInformation($"ImportJudiciaryPeople: Calling bookings API with '{peopleResult.Count}' people"); var response = await _bookingsApiClient.BulkJudiciaryPersonsAsync(peopleResult.Select(JudiciaryPersonRequestMapper.MapTo)); response?.ErroredRequests.ForEach(x => _logger.LogError("ImportJudiciaryPeople: {ErrorResponseMessage}", x.Message)); currentPage++; } } catch (Exception ex) { _logger.LogError(ex, "There was a problem importing judiciary people"); throw; } }