예제 #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);
        }
예제 #2
0
        /// <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);
        }