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); }
/// <summary> /// Creates new group with specified details in specified organization. /// </summary> /// <param name="name">The name of the group.</param> /// <param name="description">The group description.</param> /// <param name="organizationId">The identifier of the organization.</param> /// <param name="builtIn">Whether the group is built-in.</param> /// <returns>The System.Guid that represents the identifier of the newly created group.</returns> internal static Guid InsertGroup(string name, string description, Guid organizationId, bool builtIn) { ClientDataSet.GroupDataTable table = new ClientDataSet.GroupDataTable(); ClientDataSet.GroupRow row = table.NewGroupRow(); row.GroupId = Guid.NewGuid(); row.Name = name; row.Description = description; row.OrganizationId = organizationId; row.BuiltIn = builtIn; try { table.AddGroupRow(row); } catch (ConstraintException ex) { throw new ConstraintException(string.Format(CultureInfo.CurrentCulture, Resources.GroupProvider_ErrorMessage_GroupAlreadyExists, name), ex); } using (GroupTableAdapter adapter = new GroupTableAdapter(OrganizationProvider.GetConnectionString(organizationId))) { adapter.Update(row); } Guid groupId = row.GroupId; return(groupId); }