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