Beispiel #1
0
        private void btnAdd_Click(object sender, System.EventArgs e)
        {
            FormUserGroups form = new FormUserGroups();

            byte[] Versao = null;
            if (form.ShowDialog() == DialogResult.OK)
            {
                this.Cursor = Cursors.WaitCursor;
                GISADataset.TrusteeRow tRow    = null;
                List <long>            tRowIDs = new List <long>();
                foreach (ListViewItem item in form.lstVwTrustees.SelectedItems)
                {
                    tRow = (GISADataset.TrusteeRow)item.Tag;
                    // verificar se o utilizador foi anteriormente adicionado ao grupo
                    if (GisaDataSetHelper.GetInstance().UserGroups.Select(string.Format("IDUser={0} AND IDGroup={1}", (CurrentTrusteeRow.GetTrusteeUserRows()[0]).ID.ToString(), (tRow.GetTrusteeGroupRows()[0]).ID.ToString())).Length == 0)
                    {
                        tRowIDs.Add(tRow.ID);
                        GisaDataSetHelper.GetInstance().UserGroups.AddUserGroupsRow(CurrentTrusteeRow.GetTrusteeUserRows()[0], tRow.GetTrusteeGroupRows()[0], Versao, 0);
                    }
                }

                PersistencyHelper.save();
                PersistencyHelper.cleanDeletedData();
                EnumerateMembership(CurrentTrusteeRow);
                this.Cursor = Cursors.Default;
            }
        }
        public static void DeleteTrusteeAndRelatedRows(GISADataset.TrusteeRow truRow)
        {
            GISADataset.TrusteeGroupRow[] grpRows = truRow.GetTrusteeGroupRows();
            GISADataset.TrusteeUserRow[]  usrRows = truRow.GetTrusteeUserRows();
            GISADataset.UserGroupsRow[]   ugRows  = null;
            List <long> UserIDs = new List <long>();

            if (grpRows.Length > 0)
            {
                ugRows = grpRows[0].GetUserGroupsRows();
                foreach (GISADataset.UserGroupsRow ugRow in ugRows)
                {
                    UserIDs.Add(ugRow.IDUser);
                }
            }
            else if (usrRows.Length > 0)
            {
                ugRows = usrRows[0].GetUserGroupsRows();
            }

            GISADataset.TrusteePrivilegeRow[] tpRows = (GISADataset.TrusteePrivilegeRow[])(GisaDataSetHelper.GetInstance().TrusteePrivilege.Select(string.Format("IDTrustee={0}", truRow.ID)));

            foreach (GISADataset.TrusteePrivilegeRow tpRow in tpRows)
            {
                tpRow.Delete();
            }

            if (ugRows != null)
            {
                foreach (GISADataset.UserGroupsRow ugRow in ugRows)
                {
                    ugRow.Delete();
                }
            }

            foreach (GISADataset.TrusteeGroupRow grpRow in grpRows)
            {
                grpRow.Delete();
            }

            foreach (GISADataset.TrusteeUserRow usrRow in usrRows)
            {
                foreach (GISADataset.TrusteeUserRow uRowAuth in usrRow.GetTrusteeUserRows())
                {
                    uRowAuth.SetIDTrusteeUserDefaultAuthorityNull();
                }

                usrRow.Delete();
            }

            truRow.Delete();

            try
            {
                PersistencyHelper.save();
                PersistencyHelper.cleanDeletedData();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                throw;
            }
        }