Exemple #1
0
        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);
        }
Exemple #2
0
        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);
            }
        }