hMailServer.Administrator.Dialogs.formFolderPermissions.buttonAddPermission_Click C# (CSharp) Method

buttonAddPermission_Click() private method

private buttonAddPermission_Click ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        private void buttonAddPermission_Click(object sender, EventArgs e)
        {
            SaveRightsForPermission();

            formSelectUsers selectUsersDlg = new formSelectUsers(false, 0);

            if (selectUsersDlg.ShowDialog() == DialogResult.OK)
            {
                listACL.SelectedItems.Clear();

                List<int> selectedItems = selectUsersDlg.GetSelectedIDs();

                eACLPermissionType type = selectUsersDlg.Type;

                if (type == eACLPermissionType.ePermissionTypeAnyone)
                {
                    IMAPFolderPermission permission = _folder.Permissions.Add();
                    permission.PermissionType = eACLPermissionType.ePermissionTypeAnyone;
                    permission.Save();

                    ListViewItem listItem = ListPermission(permission);
                    listItem.Selected = true;
                    listACL.Focus();
                }
                else
                {
                    foreach (int itemID in selectedItems)
                    {
                        IMAPFolderPermission permission = _folder.Permissions.Add();

                        switch (type)
                        {
                            case eACLPermissionType.ePermissionTypeGroup:
                                {
                                    permission.PermissionType = eACLPermissionType.ePermissionTypeGroup;
                                    permission.PermissionGroupID = itemID;

                                    break;
                                }
                            case eACLPermissionType.ePermissionTypeUser:
                                {
                                    permission.PermissionType = eACLPermissionType.ePermissionTypeUser;
                                    permission.PermissionAccountID = itemID;
                                    break;
                                }
                            default:
                                {
                                    throw new Exception("Trying to add unknown object type to permission list");
                                }
                        }

                        permission.Save();

                        ListViewItem listItem = ListPermission(permission);
                        listItem.Selected = true;
                        listACL.Focus();
                    }

                }
            }
        }