private void CreateCannedSystemAddressLists(IConfigurationSession session, AddressBookBase parent, out Dictionary <string, bool> addressListsCreated) { addressListsCreated = new Dictionary <string, bool>(); foreach (string text in CannedSystemAddressLists.RecipientFilters.Keys) { AddressBookBase addressBookBase = session.Read <AddressBookBase>(parent.Id.GetChildId(text)); bool flag = false; bool flag2 = false; if (addressBookBase == null) { flag = true; addressBookBase = new AddressBookBase(); addressBookBase.SetId(parent.Id.GetChildId(text)); addressBookBase.DisplayName = text; addressBookBase.OrganizationId = parent.OrganizationId; addressBookBase.IsSystemAddressList = CannedSystemAddressLists.SystemFlags[text]; } if (flag || !string.Equals(LdapFilterBuilder.LdapFilterFromQueryFilter(CannedSystemAddressLists.RecipientFilters[text]), addressBookBase.LdapRecipientFilter, StringComparison.OrdinalIgnoreCase)) { flag2 = true; addressBookBase.SetRecipientFilter(CannedSystemAddressLists.RecipientFilters[text]); addressBookBase[AddressBookBaseSchema.RecipientFilterFlags] = RecipientFilterableObjectFlags.FilterApplied; base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(addressBookBase, session, typeof(AddressBookBase))); try { session.Save(addressBookBase); } finally { base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(session)); } } addressListsCreated.Add(text, flag || flag2); } }
public virtual AddressBookBase ToAddressBookBase() { AddressBookBase addressBookBase = new AddressBookBase(); addressBookBase.SetId(this.Id); addressBookBase.DisplayName = this.DisplayName; addressBookBase.OrganizationId = this.OrganizationId; return(addressBookBase); }
private void CreateCannedAddressList(string name, QueryFilter recipientFilter) { bool flag = string.Equals(name, CannedAddressListsFilterHelper.DefaultAllModernGroups, StringComparison.InvariantCulture); if (flag && (!this.CreateModernGroupsAddressList.IsPresent || !VariantConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).CmdletInfra.InstallModernGroupsAddressList.Enabled)) { return; } ADObjectId id = this.DataObject.Id; AddressBookBase[] array = this.FindAddressList(name, recipientFilter); if (array == null || array.Length == 0) { AddressBookBase addressBookBase = new AddressBookBase(); string text = name; if (flag) { text = Strings.DefaultAllGroups; addressBookBase.IsModernGroupsAddressList = true; } ADObjectId childId = id.GetChildId(text); addressBookBase.SetId(childId); addressBookBase.DisplayName = text; addressBookBase.SetRecipientFilter(recipientFilter); RecipientFilterHelper.StampE2003FilterMetadata(addressBookBase, addressBookBase.LdapRecipientFilter, AddressBookBaseSchema.PurportedSearchUI); addressBookBase.OrganizationId = (base.CurrentOrganizationId ?? OrganizationId.ForestWideOrgId); base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(addressBookBase, base.DataSession, typeof(AddressBookBase))); try { base.DataSession.Save(addressBookBase); if (string.Equals(name, CannedAddressListsFilterHelper.DefaultAllRooms, StringComparison.InvariantCulture)) { this.PostOrganization(childId); } } catch (ADObjectAlreadyExistsException) { base.WriteVerbose(Strings.VerboseCannedAddressListAlreadyExists(name)); } finally { base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(base.DataSession)); } base.WriteObject(addressBookBase); } }
private void CreateDefaultGal(ADObjectId defaultGal) { AddressBookBase addressBookBase = new AddressBookBase(); addressBookBase.SetId(defaultGal); addressBookBase.DisplayName = defaultGal.Name; addressBookBase.SetRecipientFilter(GlobalAddressList.RecipientFilterForDefaultGal); addressBookBase[AddressBookBaseSchema.RecipientFilterFlags] = (RecipientFilterableObjectFlags.FilterApplied | RecipientFilterableObjectFlags.IsDefault); RecipientFilterHelper.StampE2003FilterMetadata(addressBookBase, addressBookBase.LdapRecipientFilter, AddressBookBaseSchema.PurportedSearchUI); addressBookBase.OrganizationId = (base.CurrentOrganizationId ?? OrganizationId.ForestWideOrgId); base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(addressBookBase, base.DataSession, typeof(AddressBookBase))); try { base.DataSession.Save(addressBookBase); } finally { base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(base.DataSession)); } base.WriteObject(addressBookBase); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(); IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession; OrganizationId organizationId = (this.Identity != null) ? this.DataObject.OrganizationId : base.CurrentOrganizationId; ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, organizationId, base.ExecutingUserOrganizationId, false); configurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(configurationSession.DomainController, false, ConsistencyMode.PartiallyConsistent, configurationSession.NetworkCredential, sessionSettings, 102, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\organization\\EnableAddressListPaging.cs"); ADObjectId descendantId; if (organizationId != OrganizationId.ForestWideOrgId) { descendantId = organizationId.ConfigurationUnit.GetDescendantId(SystemAddressList.RdnSystemAddressListContainerToOrganization); } else { descendantId = base.RootOrgContainerId.GetDescendantId(SystemAddressList.RdnSystemAddressListContainerToOrganization); } AddressBookBase addressBookBase = configurationSession.Read <AddressBookBase>(descendantId); if (null == addressBookBase) { addressBookBase = new AddressBookBase(); addressBookBase.SetId(descendantId); addressBookBase.DisplayName = SystemAddressList.RdnSystemAddressListContainerToOrganization.Name; addressBookBase.OrganizationId = organizationId; configurationSession.Save(addressBookBase); } Dictionary <string, bool> dictionary; this.CreateCannedSystemAddressLists(configurationSession, addressBookBase, out dictionary); IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(base.TenantGlobalCatalogSession.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 146, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\organization\\EnableAddressListPaging.cs"); AddressBookBase[] array = configurationSession.Find <AddressBookBase>(descendantId, QueryScope.SubTree, null, null, 0); foreach (AddressBookBase addressBookBase2 in array) { if (base.Stopping) { return; } bool flag = false; dictionary.TryGetValue(addressBookBase2.Name, out flag); if (this.DoNotUpdateRecipients.IsPresent) { if (flag) { this.WriteWarning(Strings.WarningMustRunEnableAddressListPagingWithForceSwitch(addressBookBase2.Name)); } } else if (this.ForceUpdateOfRecipients.IsPresent || flag) { UpdateAddressBookBase <AddressListIdParameter> .UpdateRecipients(addressBookBase2, base.DomainController, tenantOrRootOrgRecipientSession, new Task.TaskWarningLoggingDelegate(this.WriteWarning), new WriteProgress(base.WriteProgress), this); } } Organization orgContainer = configurationSession.GetOrgContainer(); if (!orgContainer.IsAddressListPagingEnabled) { orgContainer.IsAddressListPagingEnabled = true; base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(orgContainer, configurationSession, typeof(Organization))); configurationSession.Save(orgContainer); } TaskLogger.LogExit(); }