예제 #1
0
        public async Task <Unit> Handle(MuteCommand request, CancellationToken cancellationToken)
        {
            await _roleService.GrantRoleAsync(request.GuildId, _roleConfiguration.MuteRoleId, request.UserId, "user muted for " + request.TimeSpan.Humanize());

            await AddActiveMute(request, cancellationToken);
            await AddActionLog(request, cancellationToken);

            var message = $"You have been muted for {request.TimeSpan.Humanize()}.\n\nAdditional comments: {request.Comments}";
            await _directMessageService.SendMessageAsync(request.GuildId, request.UserId, message);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
예제 #2
0
        public async Task <Unit> Handle(RestrictChannelCommand request, CancellationToken cancellationToken)
        {
            await _moderationService.RestrictChannelAccess(request.GuildId, request.UserId, request.ChannelId);

            await AddActiveChannelRestrict(request, cancellationToken);
            await AddActionLog(request, cancellationToken);

            var message = $"Your access to the {request.ChannelName} channel has been restricted for {request.TimeSpan.Humanize()}.\n\nAdditional comments: {request.Comments}";
            await _directMessageService.SendMessageAsync(request.GuildId, request.UserId, message);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }