/// <summary> /// /// </summary> /// <param name="filter"></param> /// <param name="include"></param> private void GetPermissionTargets(Oltp.AccountRow account) { Oltp.AccountRow currentAccount = account == null ? this.Window.CurrentAccount : account; if (currentAccount == null) { return; } Oltp.UserGroupDataTable groupsWith = null; Oltp.UserDataTable usersWith = null; Oltp.UserGroupDataTable groupsWithout = null; Oltp.UserDataTable usersWithout = null; // Set to null if we need to retrieve it from db _copyToAccounts = Window.CurrentUser.AccountAdmin ? Window.AvailableAccounts : null; Window.AsyncOperation(delegate() { using (OltpProxy proxy = new OltpProxy()) { groupsWith = proxy.Service.UserGroup_GetGroupsWithPermissions(currentAccount.ID); usersWith = proxy.Service.User_GetUsersWithPermissions(currentAccount.ID); groupsWithout = proxy.Service.UserGroup_GetGroupsWithoutPermissions(currentAccount.ID); usersWithout = proxy.Service.User_GetUsersWithoutPermissions(currentAccount.ID); _copyToAccounts = // If not null _copyToAccounts ?? // else proxy.Service.Account_GetByPermission(this.PageData.Path); } }, delegate() { // Get an empty new list if (_items == null) { _items = new ObservableCollection <DataRow>(); } else { _items.Clear(); } // Add all items foreach (DataRow r in groupsWith.Rows) { _items.Add(r); } foreach (DataRow r in usersWith.Rows) { _items.Add(r); } _listTable.ListView.ItemsSource = _items; //-------------------------------// // Populate 'add' combo boxes if (_groupsToAdd == null) { _groupsToAdd = new ObservableCollection <object>(); } else { _groupsToAdd.Clear(); } if (_usersToAdd == null) { _usersToAdd = new ObservableCollection <object>(); } else { _usersToAdd.Clear(); } _groupsToAdd.Add("Add group"); _usersToAdd.Add("Add user"); foreach (DataRow r in groupsWithout.Rows) { _groupsToAdd.Add(r); } foreach (DataRow r in usersWithout.Rows) { _usersToAdd.Add(r); } _comboAddGroup.ItemsSource = _groupsToAdd; _comboAddUser.ItemsSource = _usersToAdd; _comboAddGroup.SelectedIndex = 0; _comboAddUser.SelectedIndex = 0; if (_copyToAccountsListBox != null) { _copyToAccountsListBox.DataContext = Filter(_copyToAccounts); } }); }
/// <summary> /// /// </summary> /// <param name="filter"></param> /// <param name="include"></param> private void GetPermissionTargets(Oltp.AccountRow account) { Oltp.AccountRow currentAccount = account == null ? this.Window.CurrentAccount : account; if (currentAccount == null) { return; } Oltp.UserGroupDataTable groupsWith = null; Oltp.UserDataTable usersWith = null; Oltp.UserGroupDataTable groupsWithout = null; Oltp.UserDataTable usersWithout = null; Window.AsyncOperation(delegate() { using (OltpProxy proxy = new OltpProxy()) { groupsWith = proxy.Service.UserGroup_GetGroupsWithPermissions(currentAccount.ID); usersWith = proxy.Service.User_GetUsersWithPermissions(currentAccount.ID); groupsWithout = proxy.Service.UserGroup_GetGroupsWithoutPermissions(currentAccount.ID); usersWithout = proxy.Service.User_GetUsersWithoutPermissions(currentAccount.ID); } }, delegate() { // Get an empty new list if (_items == null) { _items = new ObservableCollection <DataRow>(); } else { _items.Clear(); } // Add all items foreach (DataRow r in groupsWith.Rows) { _items.Add(r); } foreach (DataRow r in usersWith.Rows) { _items.Add(r); } _listTable.ListView.ItemsSource = _items; //-------------------------------// // Populate 'add' combo boxes if (_groupsToAdd == null) { _groupsToAdd = new ObservableCollection <object>(); } else { _groupsToAdd.Clear(); } if (_usersToAdd == null) { _usersToAdd = new ObservableCollection <object>(); } else { _usersToAdd.Clear(); } _groupsToAdd.Add("Add group"); _usersToAdd.Add("Add user"); foreach (DataRow r in groupsWithout.Rows) { _groupsToAdd.Add(r); } foreach (DataRow r in usersWithout.Rows) { _usersToAdd.Add(r); } _comboAddGroup.ItemsSource = _groupsToAdd; _comboAddUser.ItemsSource = _usersToAdd; _comboAddGroup.SelectedIndex = 0; _comboAddUser.SelectedIndex = 0;; }); }