public async Task <IActionResult> DeleteAsync([FromRoute] string lockid) { if (!Guid.TryParse(lockid, out var id)) { return(BadRequest(new ErrorResponse { Error = "Invalid lock id" })); } var userId = _identityService.GetUserIdentity(); var @lock = await _locksService.GetByIdAsync(id, userId); if (@lock == null) { return(NotFound()); } var links = await _locksTagsService.GetLinkedTagsByLockAsync(id); if (links.Any()) { return(BadRequest(new ErrorResponse { Error = "Could not delete lock with linked tags" })); } var deleted = await _locksService.DeleteAsync(@lock, userId).ConfigureAwait(false); if (!deleted) { return(NotFound()); } return(NoContent()); }