public async Task <ClaimedVersion?> GetOrCreateClaimedVersionAsync( ClaimedVersion version, CancellationToken cancellationToken) { FilterDefinition <ClaimedVersion> filter = Claimed.Filter.Eq(x => x.ApplicationId, version.ApplicationId) & Claimed.Filter.Eq(x => x.ApplicationPartId, version.ApplicationPartId) & Claimed.Filter.Eq(x => x.EnvironmentId, version.EnvironmentId) & Claimed.Filter.Eq(x => x.GitVersion, version.GitVersion) & Claimed.Filter.Eq(x => x.PublishingId, version.PublishingId); UpdateDefinition <ClaimedVersion> update = Claimed.Update .SetOnInsert(x => x.ApplicationId, version.ApplicationId) .SetOnInsert(x => x.ApplicationPartId, version.ApplicationPartId) .SetOnInsert(x => x.EnvironmentId, version.EnvironmentId) .SetOnInsert(x => x.GitVersion, version.GitVersion) .SetOnInsert(x => x.PublishingId, version.PublishingId) .SetOnInsert(x => x.Configuration, version.Configuration) .SetOnInsert(x => x.ClaimedAt, version.ClaimedAt) .SetOnInsert(x => x.Id, version.Id); FindOneAndUpdateOptions <ClaimedVersion> options = new() { IsUpsert = true, ReturnDocument = ReturnDocument.After }; return(await _dbContext.ClaimedVersions .FindOneAndUpdateAsync(filter, update, options, cancellationToken)); }
public async Task <PublishedApplicationPart?> GetPublishedApplicationPartAsync( [Service] IPublishingService service, [Parent] ClaimedVersion claimedVersion, CancellationToken cancellationToken) => await service.GetPublishedById(claimedVersion.PublishingId, cancellationToken);
public async Task <Environment?> GetEnvironmentAsync( [Service] IEnvironmentService service, [Parent] ClaimedVersion claimedVersion, CancellationToken cancellationToken) => await service.GetByIdAsync(claimedVersion.EnvironmentId, cancellationToken);
public async Task <ApplicationPart?> GetApplicationPartAsync( [Service] IApplicationService service, [Parent] ClaimedVersion claimedVersion, CancellationToken cancellationToken) => await service.GetPartByIdAsync(claimedVersion.ApplicationPartId, cancellationToken);