示例#1
0
        /// <inheritdoc />
        public async Task RemoveDesignatedRoleByIdAsync(long id)
        {
            AuthorizationService.RequireClaims(AuthorizationClaim.DesignatedRoleMappingDelete);

            using (var transaction = await DesignatedRoleMappingRepository.BeginDeleteTransactionAsync())
            {
                var deletedCount = await DesignatedRoleMappingRepository.DeleteAsync(new DesignatedRoleMappingSearchCriteria()
                {
                    Id        = id,
                    IsDeleted = false
                }, AuthorizationService.CurrentUserId.Value);

                if (deletedCount == 0)
                {
                    throw new InvalidOperationException($"No role assignment exists with id {id}");
                }

                transaction.Commit();
            }
        }
示例#2
0
        /// <inheritdoc />
        public async Task RemoveDesignatedRoleAsync(ulong guildId, ulong roleId, DesignatedRoleType type)
        {
            AuthorizationService.RequireClaims(AuthorizationClaim.DesignatedRoleMappingDelete);

            using (var transaction = await DesignatedRoleMappingRepository.BeginDeleteTransactionAsync())
            {
                var deletedCount = await DesignatedRoleMappingRepository.DeleteAsync(new DesignatedRoleMappingSearchCriteria()
                {
                    GuildId   = guildId,
                    RoleId    = roleId,
                    Type      = type,
                    IsDeleted = false
                }, AuthorizationService.CurrentUserId.Value);

                if (deletedCount == 0)
                {
                    throw new InvalidOperationException($"Role {roleId} does not have a {type} designation");
                }

                transaction.Commit();
            }
        }