private async Task <int> LoadApprenticeshipFunding() { var standardsTask = _standardImportRepository.GetAll(); var apprenticeshipFundingImportsTask = _apprenticeshipFundingImportRepository.GetAll(); await Task.WhenAll(standardsTask, apprenticeshipFundingImportsTask); var fundings = standardsTask.Result.Join( apprenticeshipFundingImportsTask.Result, standard => standard.LarsCode, funding => funding.LarsCode, (standard, apprenticeshipFundingImport) => ApprenticeshipFunding.ConvertFrom(apprenticeshipFundingImport, standard.StandardUId)) .ToList(); _apprenticeshipFundingRepository.DeleteAll(); var importApprenticeshipFundingResult = _apprenticeshipFundingRepository.InsertMany(fundings); return(fundings.Count()); }
public async Task LoadDataFromStaging(DateTime timeStarted) { try { var routesToImport = await _routeImportRepository.GetAll(); var standardsToInsert = (await _standardImportRepository.GetAll()).ToList(); if (!standardsToInsert.Any()) { await AuditImport(timeStarted, 0); _logger.LogWarning("Standards import - No standards loaded. No standards retrieved from API"); return; } _standardRepository.DeleteAll(); _routeRepository.DeleteAll(); _logger.LogInformation($"Standards import - Adding {standardsToInsert.Count} to Standards table."); await _routeRepository.InsertMany(routesToImport.Select(c => (Route)c).ToList()); var standards = standardsToInsert.Select(c => (Standard)c).ToList(); await _standardRepository.InsertMany(standards); await AuditImport(timeStarted, standards.Count); _logger.LogInformation("Standards import - complete"); } catch (Exception e) { _logger.LogError("Standards import - an error occurred when trying to load data from staging.", e); throw; } }