예제 #1
0
        public async Task ProcessStage2(Guid importId)
        {
            var statisticsDbContext = DbUtils.CreateStatisticsDbContext();

            var import = await _dataImportService.GetImport(importId);

            var subject = await statisticsDbContext.Subject.FindAsync(import.SubjectId);

            var metaFileStream = await _blobStorageService.StreamBlob(PrivateReleaseFiles, import.MetaFile.Path());

            var metaFileTable = DataTableUtils.CreateFromStream(metaFileStream);

            _importerService.ImportMeta(metaFileTable, subject, statisticsDbContext);
            await statisticsDbContext.SaveChangesAsync();

            await _fileImportService.ImportFiltersAndLocations(import.Id, statisticsDbContext);

            await statisticsDbContext.SaveChangesAsync();
        }
        private async Task ProcessSubject(
            ImportMessage message,
            StatisticsDbContext statisticsDbContext,
            ContentDbContext contentDbContext,
            SubjectData subjectData)
        {
            var subject = _releaseProcessorService.CreateOrUpdateRelease(subjectData,
                                                                         message,
                                                                         statisticsDbContext,
                                                                         contentDbContext);

            await using var metaFileStream = await _fileStorageService.StreamBlob(subjectData.MetaBlob);

            var metaFileTable = DataTableUtils.CreateFromStream(metaFileStream);

            _importerService.ImportMeta(metaFileTable, subject, statisticsDbContext);

            await statisticsDbContext.SaveChangesAsync();

            await _fileImportService.ImportFiltersAndLocations(message, statisticsDbContext);

            await statisticsDbContext.SaveChangesAsync();
        }