public async Task <ActionResult <ListOf <PersistedGrantViewModel> > > List([Range(1, 50)] int?limit = 10, [Range(1, int.MaxValue)] int?offset = 1) { var searchPersisted = new PersistedGrantSearch() { Limit = limit, Offset = offset }; var irs = await _persistedGrantAppService.GetPersistedGrants(searchPersisted); return(ResponseGet(irs)); }
public async Task <ActionResult <ListOf <PersistedGrantViewModel> > > List([Range(1, 50)] int?limit = 10, [Range(1, int.MaxValue)] int?offset = 0) { // Search for grants var searchPersisted = new PersistedGrantSearch() { Limit = limit, Offset = offset }; var persistedGrants = await _persistedGrantAppService.GetPersistedGrants(searchPersisted); // Get additional data from users var usersIds = persistedGrants.Collection.Select(s => s.SubjectId).ToArray(); var search = new UserSearch <string>() { Id = usersIds, Limit = limit, Offset = offset }; var users = await _manager.Users.Apply(search).ToListAsync(); // Update addional data var collection = persistedGrants.Collection.ToList(); foreach (var persistedGrantViewModel in collection) { var user = users.FirstOrDefault(u => u.Id == persistedGrantViewModel.SubjectId); if (user == null) { continue; } persistedGrantViewModel.UpdateUserInfo(user.UserName); } persistedGrants.Collection = collection; // truncate data for non administration users if (!User.IsInRole("Administrator") && !User.HasClaim(c => c.Type == "is4-manager")) { foreach (var persistedGrantViewModel in persistedGrants.Collection) { if (persistedGrantViewModel.Email == _systemUser.Username) { continue; } persistedGrantViewModel.Email = persistedGrantViewModel.Email?.TruncateSensitiveInformation(); persistedGrantViewModel.Data = persistedGrantViewModel.Data?.TruncateSensitiveInformation(); } } return(ResponseGet(new ListOf <PersistedGrantViewModel>(persistedGrants.Collection, persistedGrants.Total))); }