Exemple #1
0
        private async Task WriteNewEksToOutput()
        {
            _Logger.LogDebug("Build EKS.");

            var args = _Output.Select(Map).ToArray();

            var content = await _SetBuilder.BuildAsync(args);

            var e = new EksCreateJobOutputEntity
            {
                Region  = DefaultValues.Region,
                Release = _EksEngineResult.Started,
                CreatingJobQualifier = ++_EksCount,
                Content = content,
            };

            _Logger.LogInformation("Write EKS - Id:{CreatingJobQualifier}.", e.CreatingJobQualifier);


            await using (var dbc = _PublishingDbContextFac())
            {
                await using var tx = dbc.BeginTransaction();
                await dbc.AddAsync(e);

                dbc.SaveAndCommit();
            }

            _Logger.LogInformation("Mark TEKs as used.");

            foreach (var i in _Output)
            {
                i.Used = true;
            }

            //Could be 750k in this hit
            await using (var dbc2 = _PublishingDbContextFac())
            {
                var bargs = new SubsetBulkArgs
                {
                    PropertiesToInclude = new[] { nameof(EksCreateJobInputEntity.Used) }
                };
                await dbc2.BulkUpdateAsync2(_Output, bargs); //TX
            }

            _EksEngineResult.OutputCount += _Output.Count;

            var now = _DateTimeProvider.Now();

            _EksResults.Add(new EksInfo {
                TekCount = _Output.Count, TotalSeconds = (now - _StartEks).TotalSeconds
            });
            _Output.Clear();
            _StartEks = now;
        }
Exemple #2
0
        private async Task WriteNewEksToOutputAsync()
        {
            _Logger.WriteBuildEntry();

            var args = _Output.Select(Map).ToArray();

            var content = await _SetBuilder.BuildAsync(args);

            var e = new EksCreateJobOutputEntity
            {
                Region  = DefaultValues.Region,
                Release = _EksEngineResult.Started,
                CreatingJobQualifier = ++_EksCount,
                Content = content,
            };

            _Logger.WriteWritingCurrentEks(e.CreatingJobQualifier);


            await using (var dbc = _PublishingDbContextFac())
            {
                await using var tx = dbc.BeginTransaction();
                await dbc.AddAsync(e);

                dbc.SaveAndCommit();
            }

            _Logger.WriteMarkTekAsUsed();

            foreach (var i in _Output)
            {
                i.Used = true;
            }

            //Could be 750k in this hit
            await using (var dbc2 = _PublishingDbContextFac())
            {
                var bargs = new SubsetBulkArgs
                {
                    PropertiesToInclude = new[] { nameof(EksCreateJobInputEntity.Used) }
                };
                await dbc2.BulkUpdateAsync2(_Output, bargs); //TX
            }

            _EksEngineResult.OutputCount += _Output.Count;

            _EksResults.Add(new EksInfo {
                TekCount = _Output.Count, TotalSeconds = _BuildEksStopwatch.Elapsed.TotalSeconds
            });
            _Output.Clear();
        }
Exemple #3
0
        private async Task <byte[]> BuildEksOutputAsync(byte[] fileData)
        {
            _logger.WriteBuildingResultFile();

            var args = new TemporaryExposureKeyArgs[]
            {
                new TemporaryExposureKeyArgs {
                    RollingPeriod         = default(int),
                    TransmissionRiskLevel = default(TransmissionRiskLevel),
                    KeyData            = fileData,
                    RollingStartNumber = default(int)
                }
            };

            return(await _eksZipBuilder.BuildAsync(args));
        }
        private async Task <byte[]> BuildEksOutput()
        {
            _Logger.LogDebug("Building EKS-engine resultfile.");

            var args = new TemporaryExposureKeyArgs[]
            {
                new TemporaryExposureKeyArgs {
                    RollingPeriod         = default(int),
                    TransmissionRiskLevel = default(TransmissionRiskLevel),
                    KeyData            = _fileContents,
                    RollingStartNumber = default(int)
                }
            };

            return(await _EksZipBuilder.BuildAsync(args));
        }