/// <inheritdoc /> public async Task AddDesignatedRoleAsync(ulong guildId, ulong roleId, DesignatedRoleType type) { AuthorizationService.RequireAuthenticatedUser(); AuthorizationService.RequireClaims(AuthorizationClaim.DesignatedRoleMappingCreate); using (var transaction = await DesignatedRoleMappingRepository.BeginCreateTransactionAsync()) { if (await DesignatedRoleMappingRepository.AnyAsync(new DesignatedRoleMappingSearchCriteria() { GuildId = guildId, RoleId = roleId, Type = type, IsDeleted = false })) { throw new InvalidOperationException($"Role {roleId} already has a {type} designation"); } await DesignatedRoleMappingRepository.CreateAsync(new DesignatedRoleMappingCreationData() { GuildId = guildId, RoleId = roleId, Type = type, CreatedById = AuthorizationService.CurrentUserId.Value }); transaction.Commit(); } }
public Task <bool> RolesHaveDesignationAsync( ulong guildId, IReadOnlyCollection <ulong> roleIds, DesignatedRoleType designation, CancellationToken cancellationToken) => DesignatedRoleMappingRepository.AnyAsync(new DesignatedRoleMappingSearchCriteria() { GuildId = guildId, RoleIds = roleIds, IsDeleted = false, Type = designation }, default);
public Task <bool> RoleHasDesignationAsync( ulong guildId, ulong roleId, DesignatedRoleType designation, CancellationToken cancellationToken) => DesignatedRoleMappingRepository.AnyAsync(new DesignatedRoleMappingSearchCriteria { GuildId = guildId, RoleId = roleId, IsDeleted = false, Type = designation }, default);