public async Task <UserRoleAlias> AddRoleAlias(AppDiscordRole role, string alias)
        {
            if (string.IsNullOrWhiteSpace(alias))
            {
                throw new ArgumentException("Alias cannot be empty");
            }

            var userRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id);

            if (userRole == null)
            {
                throw new ArgumentException("User role doesn't exist");
            }

            var aliasName = alias.Trim().ToLower();

            var existingRoleAlias = await _userRoleRepo.GetRoleAlias(aliasName);

            if (existingRoleAlias != null)
            {
                throw new ArgumentException("Alias already exists");
            }

            var roleAlias = await _userRoleRepo.CreateRoleAlias(userRole.Id, aliasName);

            return(roleAlias);
        }
        public async Task <UserRole> CreateRole(AppDiscordRole role, string?aliasList)
        {
            var existingRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id);

            if (existingRole != null)
            {
                throw new ArgumentException("User role already exists");
            }

            var userRole = await _userRoleRepo.CreateRole(role.Id, role.Name);

            if (aliasList != null)
            {
                var aliases = aliasList.Split(',').Where(a => !string.IsNullOrWhiteSpace(a)).ToList();

                var newAliases = new List <UserRoleAlias>();

                foreach (var alias in aliases)
                {
                    var aliasName = alias.Trim().ToLower();
                    var newAlias  = await _userRoleRepo.CreateRoleAlias(userRole.Id, aliasName);

                    newAliases.Add(newAlias);
                }

                userRole.UserRoleAliases = newAliases;
            }

            return(userRole);
        }
Пример #3
0
        public static AppDiscordRole Map(DiscordRole discordRole)
        {
            var appDiscordRole = new AppDiscordRole();

            appDiscordRole.Id   = discordRole.Id;
            appDiscordRole.Name = discordRole.Name;

            return(appDiscordRole);
        }
        public async Task <UserRole> GetRole(AppDiscordRole role)
        {
            var userRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id);

            if (userRole == null)
            {
                throw new ArgumentException("User role doesn't exist");
            }

            return(userRole);
        }
        public async Task UnsetRoleGroup(AppDiscordRole role)
        {
            var userRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id);

            if (userRole == null)
            {
                throw new ArgumentException("User role doesn't exist");
            }

            await _userRoleRepo.UpdateRoleGroup(userRole.Id, null);
        }
Пример #6
0
        public void GetRole_UserRoleNotExists_ThrowException()
        {
            var discordRole = new AppDiscordRole();

            _userRoleRepoMock
            .Setup(x => x.GetRoleByDiscordRoleId(It.IsAny <ulong>()))
            .ReturnsAsync((UserRole)null !);

            _sut = BuildSutWithMocks();

            Func <Task> act = async() => await _sut.GetRole(discordRole);

            act.Should()
            .ThrowAsync <ArgumentException>()
            .WithMessage("User role doesn't exist");
        }
        public async Task RemoveRoleAlias(AppDiscordRole role, string alias)
        {
            var userRole = await _userRoleRepo.GetRoleByDiscordRoleId(role.Id);

            if (userRole == null)
            {
                throw new ArgumentException("User role doesn't exist");
            }

            if (!userRole.UserRoleAliases.Any())
            {
                throw new ArgumentException("User role has no aliases");
            }

            await _userRoleRepo.DeleteRoleAlias(userRole.Id, alias);
        }
Пример #8
0
        public void CreateRole_UserRoleAlreadyExists_ThrowException()
        {
            var discordRole = new AppDiscordRole();
            var aliases     = "alias";

            _userRoleRepoMock
            .Setup(x => x.GetRoleByDiscordRoleId(It.IsAny <ulong>()))
            .ReturnsAsync(new UserRole());

            _sut = BuildSutWithMocks();

            Func <Task> act = async() => await _sut.CreateRole(discordRole, aliases);

            act.Should()
            .ThrowAsync <ArgumentException>()
            .WithMessage("User role already exists");
        }
Пример #9
0
        public void RemoveRoleAlias_RoleHasNoAliases_ThrowException()
        {
            var discordRole = new AppDiscordRole();
            var alias       = "alias";

            var userRole = new UserRole()
            {
                UserRoleAliases = new List <UserRoleAlias>()
            };

            _userRoleRepoMock
            .Setup(x => x.GetRoleByDiscordRoleId(It.IsAny <ulong>()))
            .ReturnsAsync(userRole);

            _sut = BuildSutWithMocks();

            Func <Task> act = async() => await _sut.RemoveRoleAlias(discordRole, alias);

            act.Should()
            .ThrowAsync <ArgumentException>()
            .WithMessage("User role has no aliases");
        }