public async Task DeleteAsync(string permissionId) { if (string.IsNullOrWhiteSpace(permissionId)) { return; } try { var permission = _permissionsContext .PermissionsCollection .AsQueryable() .ToList() .Find(p => p.PermissionId == permissionId); if (permission != null) { // Удаляем сам пермишинс await _permissionsContext .PermissionsCollection .DeleteOneAsync(permission.ToBsonDocument()); // Удаляем ссылающиеся на него индексы // PermissionUsers await _permissionsService.DeletePermissionUsersDocAsync(permissionId); // UserPermissions await _permissionsService.UpdateUserPermissionsDocAsync(permissionId); } // if } catch (Exception e) { _logger.LogWarning($"--- DeleteAsync() \n\n Reason:\n {e.Message}"); _logger.LogDebug(1000, e, "------------------------------------------------------"); } }