Example #1
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.SearchUsers(new UserFindByEmailNameUsername(search) { Limit = limit, Offset = offset });

            var usersByClaims = await _userManageAppService.SearchUsersByClaims(new SearchUserByClaim()
            {
                Value = search
            });


            var usersFinal = users.Collection.ToList();

            usersFinal.AddRange(usersByClaims.Collection);

            var collectionOfUsers = new ListOf <UserListViewModel>(usersFinal, usersFinal.Count);

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

            return(ResponseGet(users));
        }