internal static ADGroup CreateUniqueChildSG(IRecipientSession session, ADObjectId dom, ADObjectId containerId, string groupNameOrig, string groupDescription, string groupSam, GroupTypeFlags groupType, OrganizationId orgId)
        {
            string  commonName = InitializeExchangeUniversalGroups.FindUniqueCN(session, containerId, groupNameOrig);
            ADGroup adgroup    = new ADGroup(session, commonName, containerId, groupType);
            MultiValuedProperty <string> multiValuedProperty = new MultiValuedProperty <string>();

            multiValuedProperty.Add(groupDescription);
            adgroup[ADRecipientSchema.Description] = multiValuedProperty;
            adgroup.SamAccountName = groupSam;
            adgroup.OrganizationId = orgId;
            InitializeExchangeUniversalGroups.SaveGroup(session, containerId, adgroup);
            TaskLogger.Trace(Strings.InfoCreatedGroup(adgroup.DistinguishedName));
            return(adgroup);
        }
 private ADGroup CreateOrMoveEWPGroup(ADGroup ewp, ADOrganizationalUnit usgContainer)
 {
     if (ewp == null)
     {
         return(this.CreateGroup(usgContainer, "Exchange Windows Permissions", 0, WellKnownGuid.EwpWkGuid, Strings.ExchangeWindowsPermissionsDescription));
     }
     if (!ewp.Id.IsDescendantOf(usgContainer.Id))
     {
         ewp.SetId(usgContainer.Id.GetChildId("CN", ewp.Id.Rdn.UnescapedName));
         InitializeExchangeUniversalGroups.SaveGroup(this.rootDomainRecipientSession, usgContainer.Id, ewp);
         TaskLogger.Trace(Strings.InfoMovedGroup(ewp.DistinguishedName, ewp.Id.Parent.ToDNString(), usgContainer.Id.ToDNString()));
     }
     return(ewp);
 }
        internal static ADGroup CreateUniqueRoleGroup(IRecipientSession session, ADObjectId dom, ADObjectId containerId, string groupNameOrig, int groupId, string groupDescription, string groupSam, List <ADObjectId> manageBy, OrganizationId orgId)
        {
            string  commonName = InitializeExchangeUniversalGroups.FindUniqueCN(session, containerId, groupNameOrig);
            ADGroup adgroup    = new ADGroup(session, commonName, containerId, GroupTypeFlags.Universal | GroupTypeFlags.SecurityEnabled);

            adgroup.RecipientTypeDetails           = RecipientTypeDetails.RoleGroup;
            adgroup.SamAccountName                 = groupSam;
            adgroup.OrganizationId                 = orgId;
            adgroup[ADRecipientSchema.Description] = new MultiValuedProperty <string>(groupDescription);
            adgroup[ADGroupSchema.RoleGroupTypeId] = groupId;
            if (manageBy != null && manageBy.Count > 0)
            {
                adgroup.ManagedBy = new MultiValuedProperty <ADObjectId>(manageBy);
            }
            InitializeExchangeUniversalGroups.SaveGroup(session, containerId, adgroup);
            TaskLogger.Trace(Strings.InfoCreatedGroup(adgroup.DistinguishedName));
            return(adgroup);
        }