예제 #1
0
        private bool IsComplaintsChannelAlreadyExisting(ulong serverId)
        {
            var query = new GetComplaintsChannelQuery(serverId);
            var complaintsChannelId = this._queryBus.Execute(query).ComplaintsChannel?.ChannelId;

            return(complaintsChannelId.HasValue && complaintsChannelId.Value != 0);
        }
예제 #2
0
        public Task Handle(ulong serverId, IMappedConfiguration newConfiguration)
        {
            var query = new GetComplaintsChannelQuery(serverId);
            var complaintsChannelId = this._queryBus.Execute(query).ComplaintsChannel.ChannelId;

            if (complaintsChannelId == 0)
            {
                return(Task.CompletedTask);
            }
            return(this.RefreshPermissions(newConfiguration, complaintsChannelId));
        }
예제 #3
0
        public Task RemoveIfNeededComplaintsChannel(ChannelContext channel, DiscordServerContext server)
        {
            var query             = new GetComplaintsChannelQuery(server.Id);
            var complaintsChannel = this._queryBus.Execute(query).ComplaintsChannel;

            if (channel.Id != complaintsChannel?.ChannelId)
            {
                return(Task.CompletedTask);
            }
            var command = new RemoveComplaintsChannelCommand(complaintsChannel);

            return(this._commandBus.ExecuteAsync(command));
        }
예제 #4
0
        public Task InitForChannelAsync(ChannelContext channel, DiscordServerContext server)
        {
            var query = new GetComplaintsChannelQuery(server.Id);
            var complaintsChannelId = this._queryBus.Execute(query)?.ComplaintsChannel?.ChannelId;

            if (complaintsChannelId == channel.Id)
            {
                return(Task.CompletedTask);
            }
            var changedPermissions = this.CreateChangedPermissions();
            var mutedRole          = this._usersRolesService.GetRoleByName(UsersRolesService.MUTED_ROLE_NAME, server);

            if (mutedRole == null)
            {
                return(Task.CompletedTask);
            }
            return(this._channelsService.SetPermissions(channel, server, changedPermissions, mutedRole));
        }