public Task Insert(DbVersion version, CancellationToken cancellationToken = default) { if (version == null) { throw new ArgumentNullException(nameof(version)); } return(this.collection.InsertOneAsync( version, new InsertOneOptions { BypassDocumentValidation = false }, cancellationToken )); }
private async Task ApplyScripts(CancellationToken cancellationToken) { var latest = await this.versionRepository.FindLatest(cancellationToken).ConfigureAwait(false); this.logger.LogInformation(1003, "Latest version: {0}", JsonConvert.SerializeObject(latest)); foreach (var script in this.scripts.GetNext(latest?.Version)) { this.logger.LogInformation(1004, "Applying script... version: {0}", script.Version); await script.Apply(cancellationToken).ConfigureAwait(false); var newVersion = new DbVersion { Id = Guid.NewGuid().ToString("N"), Version = script.Version }; await this.versionRepository.Insert(newVersion, cancellationToken).ConfigureAwait(false); this.logger.LogInformation(1005, "Script applied: version: {0}", script.Version); } }