Esempio n. 1
0
        public async Task SetRolesAsSafe(Contexts contexts, IEnumerable <string> commandRoles, bool setAsSafe)
        {
            var safeRolesQuery  = new GetDiscordServerSafeRolesQuery(contexts.Server.Id);
            var safeRoles       = this._queryBus.Execute(safeRolesQuery).SafeRoles.ToList();
            var messagesService = this._messagesServiceFactory.Create(contexts);
            var changedRoles    = new List <string>();

            foreach (var roleName in commandRoles)
            {
                var serverRole = this._usersRolesService.GetRoleByName(roleName, contexts.Server);
                if (serverRole == null)
                {
                    await messagesService.SendResponse(x => x.RoleNotFoundOrIsNotSafe(contexts, roleName));

                    continue;
                }
                var settingsWasChanged = setAsSafe
                    ? await this.TryToSetAsSafe(safeRoles, roleName, contexts)
                    : await this.TryToSetAsUnsafe(safeRoles, roleName, contexts);

                if (settingsWasChanged)
                {
                    changedRoles.Add(roleName);
                }
            }
            if (changedRoles.Count > 1 && changedRoles.Count == commandRoles.Count())
            {
                await messagesService.SendResponse(x => x.AllRolesSettingsChanged());
            }
            else
            {
                changedRoles.ForEach(async role => await messagesService.SendResponse(x => x.RoleSettingsChanged(role)));
            }
        }
Esempio n. 2
0
        public Task PrintRoles(RolesCommand rolesCommand, Contexts contexts)
        {
            var messagesService = this._messagesServiceFactory.Create(contexts);
            var query           = new GetDiscordServerSafeRolesQuery(contexts.Server.Id);
            var safeRoles       = this._queryBus.Execute(query).SafeRoles.ToList();

            if (!safeRoles.Any())
            {
                return(messagesService.SendResponse(x => x.ServerDoesntHaveAnySafeRoles()));
            }
            var serverRoles = contexts.Server.GetRoles();
            var rolesNames  = safeRoles
                              .Select(x => serverRoles.FirstOrDefault(serverRole => serverRole.Id == x.RoleId)?.Name)
                              .Where(x => x != default);

            return(this.SendRolesAsEmbedMessage(rolesNames, messagesService, contexts.Server.Id));
        }
Esempio n. 3
0
        public async Task PrintRoles(RolesCommand rolesCommand, Contexts contexts)
        {
            var messageService = this._messagesServiceFactory.Create(contexts);
            var query          = new GetDiscordServerSafeRolesQuery(contexts.Server.Id);
            var safeRoles      = this._queryBus.Execute(query).SafeRoles.ToList();

            if (safeRoles.Count == 0)
            {
                await messageService.SendResponse(x => x.ServerDoesntHaveAnySafeRoles());

                return;
            }

            var output = new StringBuilder();

            output.PrintManyLines(safeRoles.Select(x => x.Name).ToArray(), contentStyleBox: false, spacesBetweenLines: false);
            await messageService.SendResponse(x => x.AvailableSafeRoles(output.ToString()));
        }