/// <summary> /// Delete the specified document. /// </summary> /// <param name="database">Database where document is located.</param> /// <param name="documentId">Id of document to delete.</param> /// <param name="revisionId">Latest revision of document.</param> /// <param name="cancellationToken">Cancellation token.</param> /// <returns>A response indicating whether action was successful.</returns> public async Task <CouchDbDeleteDocumentResult> DeleteDocumentAsync(string database, string documentId, string revisionId, CancellationToken cancellationToken = default) { var _database = Connect(); IMongoCollection <BsonDocument> collection = _database.GetCollection <BsonDocument>(database); if (!int.TryParse(revisionId, out int revision)) { throw new SimpleHttpResponseException(HttpStatusCode.NotFound, $"ID:{documentId}, Rev:{revisionId} invalid revision"); } BsonDocument filter = new BsonDocument(IdKey, documentId) { new BsonElement(RevisionKey, new BsonString(revisionId)), }; DeleteResult deleteResult = await collection.DeleteOneAsync(filter); if (deleteResult.DeletedCount == 1) { CouchDbDeleteDocumentResult result = new CouchDbDeleteDocumentResult { IsSuccessful = true, DocumentId = documentId, RevisionId = revisionId, }; return(result); } throw new SimpleHttpResponseException(HttpStatusCode.NotFound, $"ID:{documentId}, Rev:{revision} Did not match"); }
public async Task <bool> DeleteServiceApplication(string applicationId) { CouchDbGetDocumentResult getResult = new CouchDbGetDocumentResult(); string requestDatabase = $"applications"; try { getResult = await _couchDbClient.GetDocumentAsync(requestDatabase, applicationId); } catch (Exception e) { Console.WriteLine($"error {e.Message}"); } CouchDbDeleteDocumentResult deleteResult = await _couchDbClient.DeleteDocumentAsync(requestDatabase, getResult.DocumentId, getResult.RevisionId); return(deleteResult.IsSuccessful); }