internal static MultiValuedProperty <ADObjectId> ValidateAddressBook(IConfigDataProvider session, AddressBookBaseIdParameter[] addressBooks, OfflineAddressBookTaskUtility.GetUniqueObject getAddressBook, OfflineAddressBook target, Task.TaskErrorLoggingDelegate writeError) { MultiValuedProperty <ADObjectId> multiValuedProperty = new MultiValuedProperty <ADObjectId>(false, OfflineAddressBookSchema.AddressLists, new object[0]); if (addressBooks != null) { foreach (AddressBookBaseIdParameter addressBookBaseIdParameter in addressBooks) { if (addressBookBaseIdParameter != null) { IConfigurable configurable = getAddressBook(addressBookBaseIdParameter, session, null, new LocalizedString?(Strings.ErrorAddressListOrGlobalAddressListNotFound(addressBookBaseIdParameter.ToString())), new LocalizedString?(Strings.ErrorAddressListOrGlobalAddressListNotUnique(addressBookBaseIdParameter.ToString()))); if (configurable != null) { if (multiValuedProperty.Contains((ADObjectId)configurable.Identity)) { writeError(new InvalidOperationException(Strings.ErrorOabALAlreadyAssigned((target.Identity != null) ? target.Identity.ToString() : target.Name, configurable.Identity.ToString())), ErrorCategory.InvalidOperation, target.Identity); } else { multiValuedProperty.Add((ADObjectId)configurable.Identity); } } } } } return(multiValuedProperty); }
internal static MultiValuedProperty <ADObjectId> ValidateVirtualDirectory(IConfigDataProvider session, VirtualDirectoryIdParameter[] virtualDirectories, OfflineAddressBookTaskUtility.GetUniqueObject getOabVirtualDirectory, OfflineAddressBook target, Task.TaskErrorLoggingDelegate writeError) { MultiValuedProperty <ADObjectId> multiValuedProperty = new MultiValuedProperty <ADObjectId>(false, OfflineAddressBookSchema.VirtualDirectories, new object[0]); foreach (VirtualDirectoryIdParameter virtualDirectoryIdParameter in virtualDirectories) { if (virtualDirectoryIdParameter != null) { IConfigurable configurable = getOabVirtualDirectory(virtualDirectoryIdParameter, session, null, new LocalizedString?(Strings.OabVirtualDirectoryNotExisting(virtualDirectoryIdParameter.ToString())), new LocalizedString?(Strings.OabVirtualDirectoryAmbiguous(virtualDirectoryIdParameter.ToString()))); if (configurable != null) { if (multiValuedProperty.Contains((ADObjectId)configurable.Identity)) { writeError(new InvalidOperationException(Strings.ErrorOabVDirAlreadyAssigned((target.Identity != null) ? target.Identity.ToString() : target.Name, configurable.Identity.ToString())), ErrorCategory.InvalidOperation, target.Identity); } else { multiValuedProperty.Add((ADObjectId)configurable.Identity); } } } } return(multiValuedProperty); }
internal static ADObjectId ValidateGeneratingMailbox(IConfigDataProvider session, MailboxIdParameter generatingMailboxId, OfflineAddressBookTaskUtility.GetUniqueObject getAdUser, OfflineAddressBook target, Task.TaskWarningLoggingDelegate writeWarning, Task.TaskErrorLoggingDelegate writeError) { ADObjectId result = null; if (OABVariantConfigurationSettings.IsLinkedOABGenMailboxesEnabled) { if (generatingMailboxId == null) { writeWarning(Strings.WarningGeneratingMailboxIsNullOABWillNotBeGenerated); } else { ADUser aduser = (ADUser)getAdUser(generatingMailboxId, session, null, new LocalizedString?(Strings.ErrorMailboxAddressNotFound(generatingMailboxId.ToString())), new LocalizedString?(Strings.ErrorMailboxAddressNotUnique(generatingMailboxId.ToString()))); if (aduser.RecipientTypeDetails != RecipientTypeDetails.ArbitrationMailbox || aduser.PersistedCapabilities == null || !aduser.PersistedCapabilities.Contains(Capability.OrganizationCapabilityOABGen)) { writeError(new InvalidOperationException(Strings.ErrorGeneratingMailboxInvalid(aduser.Name)), ErrorCategory.InvalidOperation, target.Identity); } result = aduser.Id; } } else if (generatingMailboxId != null) { writeError(new InvalidOperationException(Strings.ErrorLinkedMailboxesAreNotSupported), ErrorCategory.InvalidOperation, target.Identity); } return(result); }