示例#1
0
        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());
        }