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))); } }
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)); }
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())); }