public async Task SetPublishReportAsync( ClientPublishReport publishReport, CancellationToken cancellationToken = default) { UpdateResult result = await _publishReports.UpdateOneAsync( Builders <ClientPublishReport> .Filter.And( Builders <ClientPublishReport> .Filter.Eq( t => t.EnvironmentId, publishReport.EnvironmentId), Builders <ClientPublishReport> .Filter.Eq( t => t.ClientVersionId, publishReport.ClientVersionId)), Builders <ClientPublishReport> .Update.Combine( Builders <ClientPublishReport> .Update.SetOnInsert( t => t.Id, publishReport.Id), Builders <ClientPublishReport> .Update.SetOnInsert( t => t.ClientVersionId, publishReport.ClientVersionId), Builders <ClientPublishReport> .Update.SetOnInsert( t => t.EnvironmentId, publishReport.EnvironmentId), Builders <ClientPublishReport> .Update.Set( t => t.Issues, publishReport.Issues), Builders <ClientPublishReport> .Update.Set( t => t.State, publishReport.State), Builders <ClientPublishReport> .Update.Set( t => t.Published, publishReport.Published)), new UpdateOptions { IsUpsert = true }, cancellationToken) .ConfigureAwait(false); if (!result.IsUpserted(publishReport.Id)) { throw new RepositoryException("The client publish report was not updated."); } }
public async Task AddPublishReportAsync( ClientPublishReport publishReport, CancellationToken cancellationToken = default) { try { await _publishReports.InsertOneAsync( publishReport, options : null, cancellationToken) .ConfigureAwait(false); } catch (MongoWriteException ex) when(ex.WriteError.Category == ServerErrorCategory.DuplicateKey) { // TODO : resources throw new DuplicateKeyException( "TODO", ex); } }
public async Task SetPublishReportAsync( ClientPublishReport publishReport, CancellationToken cancellationToken = default) { try { await _publishReports.UpdateOneAsync( Builders <ClientPublishReport> .Filter.And( Builders <ClientPublishReport> .Filter.Eq( t => t.EnvironmentId, publishReport.EnvironmentId), Builders <ClientPublishReport> .Filter.Eq( t => t.ClientVersionId, publishReport.ClientVersionId)), Builders <ClientPublishReport> .Update.Combine( Builders <ClientPublishReport> .Update.SetOnInsert( t => t.Id, publishReport.Id), Builders <ClientPublishReport> .Update.SetOnInsert( t => t.ClientVersionId, publishReport.ClientVersionId), Builders <ClientPublishReport> .Update.SetOnInsert( t => t.EnvironmentId, publishReport.EnvironmentId), Builders <ClientPublishReport> .Update.Set( t => t.Issues, publishReport.Issues), Builders <ClientPublishReport> .Update.Set( t => t.State, publishReport.State), Builders <ClientPublishReport> .Update.Set( t => t.Published, publishReport.Published)), new UpdateOptions { IsUpsert = true }, cancellationToken) .ConfigureAwait(false); } catch (MongoWriteException ex) when(ex.WriteError.Category == ServerErrorCategory.DuplicateKey) { // TODO : resources throw new DuplicateKeyException( "TODO", ex); } }
public async Task UpdatePublishReportAsync( ClientPublishReport publishReport, CancellationToken cancellationToken = default) { try { await _publishReports.ReplaceOneAsync( Builders <ClientPublishReport> .Filter.Eq(t => t.Id, publishReport.Id), publishReport, options : default(ReplaceOptions), cancellationToken) .ConfigureAwait(false); } catch (MongoWriteException ex) when(ex.WriteError.Category == ServerErrorCategory.DuplicateKey) { // TODO : resources throw new DuplicateKeyException( "TODO", ex); } }