private async Task InsertDataFromZipStreamToImportTables(Stream content) { _logger.LogInformation("LARS Import - starting extract from ZIP"); var standardsCsv = _zipArchiveHelper .ExtractModelFromCsvFileZipStream <StandardCsv>(content, Constants.LarsStandardsFileName); var apprenticeshipFundingCsv = _zipArchiveHelper .ExtractModelFromCsvFileZipStream <ApprenticeshipFundingCsv>(content, Constants.LarsApprenticeshipFundingFileName); var sectorSubjectAreaTier2Csv = _zipArchiveHelper .ExtractModelFromCsvFileZipStream <SectorSubjectAreaTier2Csv>(content, Constants.LarsSectorSubjectAreaTier2FileName); ClearStagingTables(); var larsImportResult = _larsStandardImportRepository .InsertMany(standardsCsv.Select(c => (LarsStandardImport)c).ToList()); var filterRecords = apprenticeshipFundingCsv .Where(c => c.ApprenticeshipType.StartsWith("STD", StringComparison.CurrentCultureIgnoreCase)) .Select(c => (ApprenticeshipFundingImport)c).ToList(); var apprenticeFundingImportResult = _apprenticeshipFundingImportRepository.InsertMany(filterRecords); var sectorSubjectAreaTier2ImportResult = _sectorSubjectAreaTier2ImportRepository.InsertMany(sectorSubjectAreaTier2Csv .Select(x => (SectorSubjectAreaTier2Import)x).ToList()); await Task.WhenAll(larsImportResult, apprenticeFundingImportResult, sectorSubjectAreaTier2ImportResult); _logger.LogInformation("LARS Import - finished load into Import tables"); }