private void ReadSecurityData(IList <ResourceSecurityTypeGroupsGroup> groups, IList <ResourceSecurityTypeUsersUser> users)
        {
            foreach (ListViewItem lvi in UsersAndGroups.Items)
            {
                if (lvi.Tag as UserListUser != null)
                {
                    ResourceSecurityTypeUsersUser u = new ResourceSecurityTypeUsersUser();
                    u.Name = (lvi.Tag as UserListUser).Name;
                    switch (lvi.ImageIndex)
                    {
                    case RWUSER:
                        u.Permissions = PermissionsType.rw;
                        break;

                    case ROUSER:
                        u.Permissions = PermissionsType.r;
                        break;

                    case NOUSER:
                        u.Permissions = PermissionsType.n;
                        break;

                    default:
                        continue;
                    }

                    users.Add(u);
                }
                else if (lvi.Tag as GroupListGroup != null && lvi.ImageIndex != IHGROUP)
                {
                    ResourceSecurityTypeGroupsGroup g = new ResourceSecurityTypeGroupsGroup();
                    g.Name = (lvi.Tag as GroupListGroup).Name;
                    switch (lvi.ImageIndex)
                    {
                    case RWGROUP:
                        g.Permissions = PermissionsType.rw;
                        break;

                    case ROGROUP:
                        g.Permissions = PermissionsType.r;
                        break;

                    case NOGROUP:
                        g.Permissions = PermissionsType.n;
                        break;

                    default:
                        continue;
                    }

                    groups.Add(g);
                }
            }
        }
        private void UpdateListItem(ResourceSecurityTypeGroupsGroup g, ListViewItem lvi)
        {
            if (g == null)
            {
                lvi.ImageIndex = IHGROUP;
            }

            switch (g.Permissions)
            {
            case PermissionsType.rw:
                lvi.ImageIndex = RWGROUP;
                break;

            case PermissionsType.r:
                lvi.ImageIndex = ROGROUP;
                break;

            case PermissionsType.n:
                lvi.ImageIndex = NOGROUP;
                break;
            }
            lvi.SubItems[2].Text = StatusNames[lvi.ImageIndex];
        }