void SetGroupDataSource(GroupMembershipDto members) { foreach (NSTableColumn column in GroupMembersTableView.TableColumns()) { GroupMembersTableView.RemoveColumn(column); } var listView = new GroupMembershipDataSource { Groups = members.Groups, Users = members.Users, SolutionUsers = members.SolutionUsers }; var columnNames = new List <ColumnOptions> { new ColumnOptions { Id = "Name", DisplayName = "Member", DisplayOrder = 1, Width = 180 } }; var columns = ListViewHelper.ToNSTableColumns(columnNames); foreach (var column in columns) { GroupMembersTableView.AddColumn(column); } GroupMembersTableView.DataSource = listView; GroupMembersTableView.ReloadData(); }
private void Search(string name, string domain, MemberTypeFilter filter) { var groupInfo = new GroupMembershipDto() { Groups = new List <GroupDto> (), Users = new List <UserDto>() }; if (filter != MemberTypeFilter.Users) { ActionHelper.Execute(delegate() { var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(ServerDto.ServerName); var groupInfo1 = SnapInContext.Instance.ServiceGateway.Tenant.Search(ServerDto, TenantName, domain, MemberType.GROUP, SearchType.NAME, auth.Token, name); groupInfo.Groups = groupInfo1.Groups; }); } if (filter != MemberTypeFilter.Groups) { ActionHelper.Execute(delegate() { var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(ServerDto.ServerName); var groupInfo2 = SnapInContext.Instance.ServiceGateway.Tenant.Search(ServerDto, TenantName, domain, MemberType.USER, SearchType.NAME, auth.Token, name); groupInfo.Users = groupInfo2.Users; }); } var listView = new GroupMembershipDataSource { Groups = groupInfo.Groups, Users = groupInfo.Users }; if (listView.Groups == null) { listView.Groups = new List <GroupDto> (); } if (listView.Users == null) { listView.Users = new List <UserDto> (); } GroupsTableView.DataSource = listView; GroupsTableView.ReloadData(); WarningLabel.Hidden = (listView.Groups.Count + listView.Users.Count) < 100; }