public async Task SetPublishedClientAsync( PublishedClient publishedClient, CancellationToken cancellationToken = default) { await _publishedClients.UpdateOneAsync( Builders <PublishedClient> .Filter.And( Builders <PublishedClient> .Filter.Eq( t => t.EnvironmentId, publishedClient.EnvironmentId), Builders <PublishedClient> .Filter.Eq( t => t.SchemaId, publishedClient.SchemaId)), Builders <PublishedClient> .Update.Combine( Builders <PublishedClient> .Update.SetOnInsert( t => t.EnvironmentId, publishedClient.EnvironmentId), Builders <PublishedClient> .Update.SetOnInsert( t => t.SchemaId, publishedClient.SchemaId), Builders <PublishedClient> .Update.SetOnInsert( t => t.ClientId, publishedClient.ClientId), Builders <PublishedClient> .Update.SetOnInsert( t => t.Id, publishedClient.Id), Builders <PublishedClient> .Update.Set( t => t.ClientVersionId, publishedClient.ClientVersionId), Builders <PublishedClient> .Update.Set( t => t.QueryIds, publishedClient.QueryIds)), new UpdateOptions { IsUpsert = true }, cancellationToken) .ConfigureAwait(false); }
public async Task SetPublishedClientAsync( PublishedClient publishedClient, CancellationToken cancellationToken = default) { UpdateResult result = await _publishedClients.UpdateOneAsync( Builders <PublishedClient> .Filter.And( Builders <PublishedClient> .Filter.Eq( t => t.EnvironmentId, publishedClient.EnvironmentId), Builders <PublishedClient> .Filter.Eq( t => t.ClientId, publishedClient.ClientId)), Builders <PublishedClient> .Update.Combine( Builders <PublishedClient> .Update.SetOnInsert( t => t.EnvironmentId, publishedClient.EnvironmentId), Builders <PublishedClient> .Update.SetOnInsert( t => t.SchemaId, publishedClient.SchemaId), Builders <PublishedClient> .Update.SetOnInsert( t => t.ClientId, publishedClient.ClientId), Builders <PublishedClient> .Update.SetOnInsert( t => t.Id, publishedClient.Id), Builders <PublishedClient> .Update.Set( t => t.ClientVersionId, publishedClient.ClientVersionId), Builders <PublishedClient> .Update.Set( t => t.QueryIds, publishedClient.QueryIds)), new UpdateOptions { IsUpsert = true }, cancellationToken) .ConfigureAwait(false); if (!result.IsUpserted(publishedClient.Id)) { throw new RepositoryException("The published client was not updated."); } }