Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }