public async Task RemoveAdmin(string username, User user) { User oldAdmin = await GetUserOrThrow(username); Role?adminRole = await roleRepo.FindAdminRole(oldAdmin); if (adminRole == null) { throw new InvalidOperationException($"User {oldAdmin.Username} was not an admin"); } await roleRepo.Delete(adminRole); await eventBus.Dispatch(new AdminRemovedEvent(oldAdmin)); }