public static DataView GetGroups(bool includeOrganizationAdministratorGroup) { ClientDataSet.GroupDataTable table = GetGroups() as ClientDataSet.GroupDataTable; if (!table.Columns.Contains("SortNumber")) { table.Columns.Add("SortNumber", typeof(int), "IIF((GroupId = '00000000-0000-0000-0000-000000000000'), 0, IIF((BuiltIn = 'True'), 1, 2))"); } if (includeOrganizationAdministratorGroup) { if (table.Columns.Contains("SortNumber")) { if (table.FindByGroupId(Guid.Empty) == null) { ClientDataSet.GroupRow row = table.NewGroupRow(); row.GroupId = Guid.Empty; row.OrganizationId = UserContext.Current.OrganizationId; row.Name = Resources.GroupProvider_OrganizationAdministratorGroupName; row.Description = Resources.GroupProvider_OrganizationAdministratorGroupDescription; row.BuiltIn = true; table.AddGroupRow(row); table.AcceptChanges(); } } } table.DefaultView.Sort = string.Format(CultureInfo.InvariantCulture, "SortNumber, {0}", table.NameColumn.ColumnName); return(table.DefaultView); }
public static DataTable GetGroups() { Guid organizationId = UserContext.Current.OrganizationId; if (FrameworkConfiguration.Current.WebApplication.EnableMultipleInstances) { return(GetGroups(organizationId)); } else { ClientDataSet.GroupDataTable table = GetGroups(organizationId); Instance firstInstance = InstanceProvider.GetFirstInstance(organizationId); if (firstInstance != null) { ArrayList list = new ArrayList(); ClientDataSet.GroupsInstancesRolesDataTable girTable = null; using (GroupsInstancesRolesTableAdapter adapter = new GroupsInstancesRolesTableAdapter(OrganizationProvider.GetConnectionString(organizationId))) { girTable = adapter.GetGroupsInstancesRolesByInstanceId(organizationId, firstInstance.InstanceId); } foreach (ClientDataSet.GroupsInstancesRolesRow girRow in girTable) { if (girRow.RoleId == RoleProvider.InstanceAdministratorRoleId) { if (!list.Contains(girRow.GroupId)) { list.Add(girRow.GroupId); } } } foreach (Guid groupId in list) { ClientDataSet.GroupRow row = table.FindByGroupId(groupId); if (row != null) { table.RemoveGroupRow(row); } } table.AcceptChanges(); } return(table); } }