示例#1
0
        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");
        }