Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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.");
            }
        }