public static async Task DeleteAllResources(this FhirClient client, ResourceType resourceType, string searchUrl) { while (true) { Bundle bundle = await client.SearchAsync(resourceType, searchUrl, count : 100); if (!bundle.Entry.Any()) { break; } foreach (Bundle.EntryComponent entry in bundle.Entry) { await client.DeleteAsync(entry.FullUrl); } } }
public async Task GivenAnExistingResource_WhenDeleted_ThenAuditLogEntriesShouldBeCreated() { if (!_fixture.IsUsingInProcTestServer) { // This test only works with the in-proc server with customized middleware pipeline return; } FhirResponse <Patient> result = await _client.CreateAsync(Samples.GetDefaultPatient()); FhirResponse deleteResult = await _client.DeleteAsync(result.Resource); string correlationId = deleteResult.Headers.GetValues(RequestIdHeaderName).First(); var expectedUri = new Uri($"http://localhost/Patient/{result.Resource.Id}"); // TODO: The resource type being logged here is incorrect. The issue is tracked by https://github.com/Microsoft/fhir-server/issues/334. Assert.Collection( _auditLogger.GetAuditEntriesByCorrelationId(correlationId), ae => ValidateExecutingAuditEntry(ae, "delete", expectedUri, correlationId), ae => ValidateExecutedAuditEntry(ae, "delete", null, expectedUri, HttpStatusCode.NoContent, correlationId)); }
public async Task GivenAnExistingResource_WhenDeleted_ThenAuditLogEntriesShouldBeCreated() { if (!_fixture.IsUsingInProcTestServer) { // This test only works with the in-proc server with customized middleware pipeline return; } FhirResponse <Patient> result = await _client.CreateAsync(Samples.GetDefaultPatient().ToPoco <Patient>()); FhirResponse deleteResult = await _client.DeleteAsync(result.Resource); string correlationId = deleteResult.Headers.GetValues(RequestIdHeaderName).First(); var expectedUri = new Uri($"http://localhost/Patient/{result.Resource.Id}"); string expectedAppId = TestApplications.GlobalAdminServicePrincipal.ClientId; Assert.Collection( _auditLogger.GetAuditEntriesByCorrelationId(correlationId), ae => ValidateExecutingAuditEntry(ae, "delete", ResourceType.Patient, expectedUri, correlationId, expectedAppId, ExpectedClaimKey), ae => ValidateExecutedAuditEntry(ae, "delete", ResourceType.Patient, expectedUri, HttpStatusCode.NoContent, correlationId, expectedAppId, ExpectedClaimKey)); }