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; } }