예제 #1
0
        public async Task Should_Search_User_By_Username()
        {
            string name     = string.Empty;
            var    commands = UserViewModelFaker.GenerateUserViewModel().Generate(_faker.Random.Int(1, 10));

            foreach (var command in commands)
            {
                var result = await _userAppService.Register(command);

                result.Should().BeTrue();
                name = command.Username;
            }

            var search = new UserFindByProperties(name);

            var users = await _userManagerAppService.SearchUsersByProperties(search);

            users.Total.Should().BeGreaterOrEqualTo(1);
            users.Collection.ToList().Count.Should().Be(users.Total);
        }
예제 #2
0
        public async Task <ActionResult <ListOf <UserListViewModel> > > List([Range(1, 50)] int?limit = 10, [Range(1, int.MaxValue)] int?offset = 0, string search = null)
        {
            var users = await _userManageAppService.SearchUsersByProperties(new UserFindByProperties(search) { Limit = limit, Offset = offset });

            // Truncate data for non admins
            if (!User.IsInRole("Administrator") && !User.HasClaim(c => c.Type == "is4-manager"))
            {
                foreach (var ir in users.Collection)
                {
                    if (_user.Username == ir.UserName)
                    {
                        continue;
                    }
                    ir.Email    = ir.Email?.TruncateEmail();
                    ir.UserName = ir.UserName?.TruncateSensitiveInformation();
                }
            }

            return(ResponseGet(users));
        }