Skip to content

Commit f3c8ebd

Browse files
authored
Merge pull request #1513 from json-api-dotnet/revert-async-await
Revert "Resharper: Replace async method with Task return"
2 parents c3e23da + 972c50c commit f3c8ebd

File tree

24 files changed

+110
-79
lines changed

24 files changed

+110
-79
lines changed

Diff for: WarningSeverities.DotSettings

-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@
166166
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RemoveRedundantOrStatement_002ETrue/@EntryIndexedValue">WARNING</s:String>
167167
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RemoveToList_002E1/@EntryIndexedValue">WARNING</s:String>
168168
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RemoveToList_002E2/@EntryIndexedValue">WARNING</s:String>
169-
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceAsyncWithTaskReturn/@EntryIndexedValue">WARNING</s:String>
170169
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceObjectPatternWithVarPattern/@EntryIndexedValue">WARNING</s:String>
171170
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceSequenceEqualWithConstantPattern/@EntryIndexedValue">WARNING</s:String>
172171
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceWithFirstOrDefault_002E1/@EntryIndexedValue">WARNING</s:String>

Diff for: src/Examples/DapperExample/Repositories/DapperRepository.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public async Task<IReadOnlyCollection<TResource>> GetAsync(QueryLayer queryLayer
161161
}
162162

163163
/// <inheritdoc />
164-
public Task<int> CountAsync(FilterExpression? filter, CancellationToken cancellationToken)
164+
public async Task<int> CountAsync(FilterExpression? filter, CancellationToken cancellationToken)
165165
{
166166
var queryLayer = new QueryLayer(ResourceType)
167167
{
@@ -173,7 +173,7 @@ public Task<int> CountAsync(FilterExpression? filter, CancellationToken cancella
173173
CommandDefinition sqlCommand = _dapperFacade.GetSqlCommand(selectNode, cancellationToken);
174174
LogSqlCommand(sqlCommand);
175175

176-
return ExecuteQueryAsync(connection => connection.ExecuteScalarAsync<int>(sqlCommand), cancellationToken);
176+
return await ExecuteQueryAsync(async connection => await connection.ExecuteScalarAsync<int>(sqlCommand), cancellationToken);
177177
}
178178

179179
/// <inheritdoc />

Diff for: src/JsonApiDotNetCore/AtomicOperations/OperationsProcessor.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public OperationsProcessor(IOperationProcessorAccessor operationProcessorAccesso
9999
return results;
100100
}
101101

102-
protected virtual Task<OperationContainer?> ProcessOperationAsync(OperationContainer operation, CancellationToken cancellationToken)
102+
protected virtual async Task<OperationContainer?> ProcessOperationAsync(OperationContainer operation, CancellationToken cancellationToken)
103103
{
104104
cancellationToken.ThrowIfCancellationRequested();
105105

@@ -108,7 +108,7 @@ public OperationsProcessor(IOperationProcessorAccessor operationProcessorAccesso
108108
_targetedFields.CopyFrom(operation.TargetedFields);
109109
_request.CopyFrom(operation.Request);
110110

111-
return _operationProcessorAccessor.ProcessAsync(operation, cancellationToken);
111+
return await _operationProcessorAccessor.ProcessAsync(operation, cancellationToken);
112112
}
113113

114114
protected void TrackLocalIdsForOperation(OperationContainer operation)

Diff for: src/JsonApiDotNetCore/Controllers/JsonApiController.cs

+20-20
Original file line numberDiff line numberDiff line change
@@ -42,78 +42,78 @@ protected JsonApiController(IJsonApiOptions options, IResourceGraph resourceGrap
4242
/// <inheritdoc />
4343
[HttpGet]
4444
[HttpHead]
45-
public override Task<IActionResult> GetAsync(CancellationToken cancellationToken)
45+
public override async Task<IActionResult> GetAsync(CancellationToken cancellationToken)
4646
{
47-
return base.GetAsync(cancellationToken);
47+
return await base.GetAsync(cancellationToken);
4848
}
4949

5050
/// <inheritdoc />
5151
[HttpGet("{id}")]
5252
[HttpHead("{id}")]
53-
public override Task<IActionResult> GetAsync([Required] TId id, CancellationToken cancellationToken)
53+
public override async Task<IActionResult> GetAsync([Required] TId id, CancellationToken cancellationToken)
5454
{
55-
return base.GetAsync(id, cancellationToken);
55+
return await base.GetAsync(id, cancellationToken);
5656
}
5757

5858
/// <inheritdoc />
5959
[HttpGet("{id}/{relationshipName}")]
6060
[HttpHead("{id}/{relationshipName}")]
61-
public override Task<IActionResult> GetSecondaryAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
61+
public override async Task<IActionResult> GetSecondaryAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
6262
{
63-
return base.GetSecondaryAsync(id, relationshipName, cancellationToken);
63+
return await base.GetSecondaryAsync(id, relationshipName, cancellationToken);
6464
}
6565

6666
/// <inheritdoc />
6767
[HttpGet("{id}/relationships/{relationshipName}")]
6868
[HttpHead("{id}/relationships/{relationshipName}")]
69-
public override Task<IActionResult> GetRelationshipAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
69+
public override async Task<IActionResult> GetRelationshipAsync([Required] TId id, [Required] string relationshipName, CancellationToken cancellationToken)
7070
{
71-
return base.GetRelationshipAsync(id, relationshipName, cancellationToken);
71+
return await base.GetRelationshipAsync(id, relationshipName, cancellationToken);
7272
}
7373

7474
/// <inheritdoc />
7575
[HttpPost]
76-
public override Task<IActionResult> PostAsync([Required] TResource resource, CancellationToken cancellationToken)
76+
public override async Task<IActionResult> PostAsync([Required] TResource resource, CancellationToken cancellationToken)
7777
{
78-
return base.PostAsync(resource, cancellationToken);
78+
return await base.PostAsync(resource, cancellationToken);
7979
}
8080

8181
/// <inheritdoc />
8282
[HttpPost("{id}/relationships/{relationshipName}")]
83-
public override Task<IActionResult> PostRelationshipAsync([Required] TId id, [Required] string relationshipName,
83+
public override async Task<IActionResult> PostRelationshipAsync([Required] TId id, [Required] string relationshipName,
8484
[Required] ISet<IIdentifiable> rightResourceIds, CancellationToken cancellationToken)
8585
{
86-
return base.PostRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
86+
return await base.PostRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
8787
}
8888

8989
/// <inheritdoc />
9090
[HttpPatch("{id}")]
91-
public override Task<IActionResult> PatchAsync([Required] TId id, [Required] TResource resource, CancellationToken cancellationToken)
91+
public override async Task<IActionResult> PatchAsync([Required] TId id, [Required] TResource resource, CancellationToken cancellationToken)
9292
{
93-
return base.PatchAsync(id, resource, cancellationToken);
93+
return await base.PatchAsync(id, resource, cancellationToken);
9494
}
9595

9696
/// <inheritdoc />
9797
[HttpPatch("{id}/relationships/{relationshipName}")]
9898
// Parameter `[Required] object? rightValue` makes Swashbuckle generate the OpenAPI request body as required. We don't actually validate ModelState, so it doesn't hurt.
99-
public override Task<IActionResult> PatchRelationshipAsync([Required] TId id, [Required] string relationshipName, [Required] object? rightValue,
99+
public override async Task<IActionResult> PatchRelationshipAsync([Required] TId id, [Required] string relationshipName, [Required] object? rightValue,
100100
CancellationToken cancellationToken)
101101
{
102-
return base.PatchRelationshipAsync(id, relationshipName, rightValue, cancellationToken);
102+
return await base.PatchRelationshipAsync(id, relationshipName, rightValue, cancellationToken);
103103
}
104104

105105
/// <inheritdoc />
106106
[HttpDelete("{id}")]
107-
public override Task<IActionResult> DeleteAsync([Required] TId id, CancellationToken cancellationToken)
107+
public override async Task<IActionResult> DeleteAsync([Required] TId id, CancellationToken cancellationToken)
108108
{
109-
return base.DeleteAsync(id, cancellationToken);
109+
return await base.DeleteAsync(id, cancellationToken);
110110
}
111111

112112
/// <inheritdoc />
113113
[HttpDelete("{id}/relationships/{relationshipName}")]
114-
public override Task<IActionResult> DeleteRelationshipAsync([Required] TId id, [Required] string relationshipName,
114+
public override async Task<IActionResult> DeleteRelationshipAsync([Required] TId id, [Required] string relationshipName,
115115
[Required] ISet<IIdentifiable> rightResourceIds, CancellationToken cancellationToken)
116116
{
117-
return base.DeleteRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
117+
return await base.DeleteRelationshipAsync(id, relationshipName, rightResourceIds, cancellationToken);
118118
}
119119
}

Diff for: src/JsonApiDotNetCore/Controllers/JsonApiOperationsController.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public abstract class JsonApiOperationsController(
1818
{
1919
/// <inheritdoc />
2020
[HttpPost]
21-
public override Task<IActionResult> PostOperationsAsync([Required] IList<OperationContainer> operations, CancellationToken cancellationToken)
21+
public override async Task<IActionResult> PostOperationsAsync([Required] IList<OperationContainer> operations, CancellationToken cancellationToken)
2222
{
23-
return base.PostOperationsAsync(operations, cancellationToken);
23+
return await base.PostOperationsAsync(operations, cancellationToken);
2424
}
2525
}

Diff for: src/JsonApiDotNetCore/Middleware/JsonApiOutputFormatter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public bool CanWriteResult(OutputFormatterCanWriteContext context)
1616
}
1717

1818
/// <inheritdoc />
19-
public Task WriteAsync(OutputFormatterWriteContext context)
19+
public async Task WriteAsync(OutputFormatterWriteContext context)
2020
{
2121
ArgumentGuard.NotNull(context);
2222

2323
var writer = context.HttpContext.RequestServices.GetRequiredService<IJsonApiWriter>();
24-
return writer.WriteAsync(context.Object, context.HttpContext);
24+
await writer.WriteAsync(context.Object, context.HttpContext);
2525
}
2626
}

Diff for: src/JsonApiDotNetCore/Serialization/Response/JsonApiWriter.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,22 @@ public JsonApiWriter(IJsonApiRequest request, IJsonApiOptions options, IResponse
4444
}
4545

4646
/// <inheritdoc />
47-
public Task WriteAsync(object? model, HttpContext httpContext)
47+
public async Task WriteAsync(object? model, HttpContext httpContext)
4848
{
4949
ArgumentGuard.NotNull(httpContext);
5050

5151
if (model == null && !CanWriteBody((HttpStatusCode)httpContext.Response.StatusCode))
5252
{
5353
// Prevent exception from Kestrel server, caused by writing data:null json response.
54-
return Task.CompletedTask;
54+
return;
5555
}
5656

5757
string? responseBody = GetResponseBody(model, httpContext);
5858

5959
if (httpContext.Request.Method == HttpMethod.Head.Method)
6060
{
6161
httpContext.Response.GetTypedHeaders().ContentLength = responseBody == null ? 0 : Encoding.UTF8.GetByteCount(responseBody);
62-
return Task.CompletedTask;
62+
return;
6363
}
6464

6565
_traceWriter.LogMessage(() =>
@@ -70,7 +70,7 @@ public Task WriteAsync(object? model, HttpContext httpContext)
7070
return $"Sending {httpContext.Response.StatusCode} response for {method} request at '{url}' with body: <<{responseBody}>>";
7171
});
7272

73-
return SendResponseBodyAsync(httpContext.Response, responseBody);
73+
await SendResponseBodyAsync(httpContext.Response, responseBody);
7474
}
7575

7676
private static bool CanWriteBody(HttpStatusCode statusCode)

Diff for: src/JsonApiDotNetCore/Services/JsonApiResourceService.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -244,19 +244,19 @@ protected async Task AssertPrimaryResourceDoesNotExistAsync(TResource resource,
244244
}
245245
}
246246

247-
protected virtual Task InitializeResourceAsync(TResource resourceForDatabase, CancellationToken cancellationToken)
247+
protected virtual async Task InitializeResourceAsync(TResource resourceForDatabase, CancellationToken cancellationToken)
248248
{
249-
return _resourceDefinitionAccessor.OnPrepareWriteAsync(resourceForDatabase, WriteOperationKind.CreateResource, cancellationToken);
249+
await _resourceDefinitionAccessor.OnPrepareWriteAsync(resourceForDatabase, WriteOperationKind.CreateResource, cancellationToken);
250250
}
251251

252-
private Task AccurizeResourceTypesInHierarchyToAssignInRelationshipsAsync(TResource primaryResource, CancellationToken cancellationToken)
252+
private async Task AccurizeResourceTypesInHierarchyToAssignInRelationshipsAsync(TResource primaryResource, CancellationToken cancellationToken)
253253
{
254-
return ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, true, cancellationToken);
254+
await ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, true, cancellationToken);
255255
}
256256

257-
protected Task AssertResourcesToAssignInRelationshipsExistAsync(TResource primaryResource, CancellationToken cancellationToken)
257+
protected async Task AssertResourcesToAssignInRelationshipsExistAsync(TResource primaryResource, CancellationToken cancellationToken)
258258
{
259-
return ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, false, cancellationToken);
259+
await ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(primaryResource, false, cancellationToken);
260260
}
261261

262262
private async Task ValidateResourcesToAssignInRelationshipsExistWithRefreshAsync(TResource primaryResource, bool onlyIfTypeHierarchy,

Diff for: test/DapperTests/IntegrationTests/AtomicOperations/AtomicOperationsTests.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,10 @@ public async Task Can_rollback_on_error()
421421

422422
const string personLocalId = "new-person";
423423

424-
await _testContext.RunOnDatabaseAsync(dbContext => _testContext.ClearAllTablesAsync(dbContext));
424+
await _testContext.RunOnDatabaseAsync(async dbContext =>
425+
{
426+
await _testContext.ClearAllTablesAsync(dbContext);
427+
});
425428

426429
var requestBody = new
427430
{

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/CreateMusicTrackOperationsController.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ public sealed class CreateMusicTrackOperationsController(
1818
IJsonApiOptions options, IResourceGraph resourceGraph, ILoggerFactory loggerFactory, IOperationsProcessor processor, IJsonApiRequest request,
1919
ITargetedFields targetedFields) : JsonApiOperationsController(options, resourceGraph, loggerFactory, processor, request, targetedFields)
2020
{
21-
public override Task<IActionResult> PostOperationsAsync(IList<OperationContainer> operations, CancellationToken cancellationToken)
21+
public override async Task<IActionResult> PostOperationsAsync(IList<OperationContainer> operations, CancellationToken cancellationToken)
2222
{
2323
AssertOnlyCreatingMusicTracks(operations);
2424

25-
return base.PostOperationsAsync(operations, cancellationToken);
25+
return await base.PostOperationsAsync(operations, cancellationToken);
2626
}
2727

2828
private static void AssertOnlyCreatingMusicTracks(IEnumerable<OperationContainer> operations)

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/Serialization/AtomicSerializationResourceDefinitionTests.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ public async Task Transforms_on_create_resource_with_side_effects()
4242

4343
List<RecordCompany> newCompanies = _fakers.RecordCompany.Generate(2);
4444

45-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<RecordCompany>());
45+
await _testContext.RunOnDatabaseAsync(async dbContext =>
46+
{
47+
await dbContext.ClearTableAsync<RecordCompany>();
48+
});
4649

4750
var requestBody = new
4851
{

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicRollbackTests.cs

+8-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ public async Task Can_rollback_on_error()
2727
DateTimeOffset newBornAt = _fakers.Performer.Generate().BornAt;
2828
string newTitle = _fakers.MusicTrack.Generate().Title;
2929

30-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTablesAsync<Performer, MusicTrack>());
30+
await _testContext.RunOnDatabaseAsync(async dbContext =>
31+
{
32+
await dbContext.ClearTablesAsync<Performer, MusicTrack>();
33+
});
3134

3235
string unknownPerformerId = Unknown.StringId.For<Performer, int>();
3336

@@ -110,7 +113,10 @@ public async Task Can_restore_to_previous_savepoint_on_error()
110113
// Arrange
111114
string newTrackTitle = _fakers.MusicTrack.Generate().Title;
112115

113-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTablesAsync<Performer, MusicTrack>());
116+
await _testContext.RunOnDatabaseAsync(async dbContext =>
117+
{
118+
await dbContext.ClearTablesAsync<Performer, MusicTrack>();
119+
});
114120

115121
const string trackLid = "track-1";
116122

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ResponseMetaTests.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ public ResponseMetaTests(IntegrationTestContext<TestableStartup<MetaDbContext>,
2929
public async Task Returns_top_level_meta()
3030
{
3131
// Arrange
32-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<SupportTicket>());
32+
await _testContext.RunOnDatabaseAsync(async dbContext =>
33+
{
34+
await dbContext.ClearTableAsync<SupportTicket>();
35+
});
3336

3437
const string route = "/supportTickets";
3538

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/Meta/TopLevelCountTests.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
8383
public async Task Renders_resource_count_for_empty_collection()
8484
{
8585
// Arrange
86-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<SupportTicket>());
86+
await _testContext.RunOnDatabaseAsync(async dbContext =>
87+
{
88+
await dbContext.ClearTableAsync<SupportTicket>();
89+
});
8790

8891
const string route = "/supportTickets";
8992

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/MessagingGroupDefinition.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ protected async Task FinishWriteAsync(DomainGroup group, WriteOperationKind writ
166166

167167
protected abstract Task FlushMessageAsync(OutgoingMessage message, CancellationToken cancellationToken);
168168

169-
protected virtual Task<DomainGroup?> GetGroupToDeleteAsync(Guid groupId, CancellationToken cancellationToken)
169+
protected virtual async Task<DomainGroup?> GetGroupToDeleteAsync(Guid groupId, CancellationToken cancellationToken)
170170
{
171-
return _groupSet.Include(group => group.Users).FirstOrDefaultAsync(group => group.Id == groupId, cancellationToken);
171+
return await _groupSet.Include(group => group.Users).FirstOrDefaultAsync(group => group.Id == groupId, cancellationToken);
172172
}
173173
}

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/MessagingUserDefinition.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ protected async Task FinishWriteAsync(DomainUser user, WriteOperationKind writeO
113113

114114
protected abstract Task FlushMessageAsync(OutgoingMessage message, CancellationToken cancellationToken);
115115

116-
protected virtual Task<DomainUser?> GetUserToDeleteAsync(Guid userId, CancellationToken cancellationToken)
116+
protected virtual async Task<DomainUser?> GetUserToDeleteAsync(Guid userId, CancellationToken cancellationToken)
117117
{
118-
return _userSet.Include(domainUser => domainUser.Group).FirstOrDefaultAsync(domainUser => domainUser.Id == userId, cancellationToken);
118+
return await _userSet.Include(domainUser => domainUser.Group).FirstOrDefaultAsync(domainUser => domainUser.Id == userId, cancellationToken);
119119
}
120120
}

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.Group.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ public async Task Create_group_writes_to_outbox()
1919

2020
string newGroupName = _fakers.DomainGroup.Generate().Name;
2121

22-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<OutgoingMessage>());
22+
await _testContext.RunOnDatabaseAsync(async dbContext =>
23+
{
24+
await dbContext.ClearTableAsync<OutgoingMessage>();
25+
});
2326

2427
var requestBody = new
2528
{

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.User.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ public async Task Create_user_writes_to_outbox()
2020
string newLoginName = _fakers.DomainUser.Generate().LoginName;
2121
string newDisplayName = _fakers.DomainUser.Generate().DisplayName!;
2222

23-
await _testContext.RunOnDatabaseAsync(dbContext => dbContext.ClearTableAsync<OutgoingMessage>());
23+
await _testContext.RunOnDatabaseAsync(async dbContext =>
24+
{
25+
await dbContext.ClearTableAsync<OutgoingMessage>();
26+
});
2427

2528
var requestBody = new
2629
{

Diff for: test/JsonApiDotNetCoreTests/IntegrationTests/SoftDeletion/SoftDeletionAwareResourceService.cs

+6-4
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,16 @@ public override async Task AddToToManyRelationshipAsync(TId leftId, string relat
7373
await base.AddToToManyRelationshipAsync(leftId, relationshipName, rightResourceIds, cancellationToken);
7474
}
7575

76-
public override Task DeleteAsync(TId id, CancellationToken cancellationToken)
76+
public override async Task DeleteAsync(TId id, CancellationToken cancellationToken)
7777
{
7878
if (IsSoftDeletable(typeof(TResource)))
7979
{
80-
return SoftDeleteAsync(id, cancellationToken);
80+
await SoftDeleteAsync(id, cancellationToken);
81+
}
82+
else
83+
{
84+
await base.DeleteAsync(id, cancellationToken);
8185
}
82-
83-
return base.DeleteAsync(id, cancellationToken);
8486
}
8587

8688
private async Task SoftDeleteAsync(TId id, CancellationToken cancellationToken)

0 commit comments

Comments
 (0)