Beispiel #1
0
        protected override IConfigurable ConvertDataObjectToPresentationObject(IConfigurable dataObject)
        {
            ReducedRecipient reducedRecipient = (ReducedRecipient)dataObject;

            if (reducedRecipient == null)
            {
                return(null);
            }
            if (this.ShouldReadProperties(new ADPropertyDefinition[]
            {
                ReducedRecipientSchema.OwaMailboxPolicy,
                ReducedRecipientSchema.SharingPolicy,
                ReducedRecipientSchema.RetentionPolicy
            }) && reducedRecipient.RecipientType == Microsoft.Exchange.Data.Directory.Recipient.RecipientType.UserMailbox)
            {
                SharedConfiguration sharedConfig = null;
                if (SharedConfiguration.IsDehydratedConfiguration(reducedRecipient.OrganizationId) || (SharedConfiguration.GetSharedConfigurationState(reducedRecipient.OrganizationId) & SharedTenantConfigurationState.Static) != SharedTenantConfigurationState.UnSupported)
                {
                    sharedConfig = SharedConfiguration.GetSharedConfiguration(reducedRecipient.OrganizationId);
                }
                if (this.ShouldReadProperties(new ADPropertyDefinition[]
                {
                    ReducedRecipientSchema.OwaMailboxPolicy
                }) && reducedRecipient.OwaMailboxPolicy == null)
                {
                    ADObjectId defaultOwaMailboxPolicyId = this.GetDefaultOwaMailboxPolicyId(reducedRecipient);
                    if (defaultOwaMailboxPolicyId != null)
                    {
                        reducedRecipient.OwaMailboxPolicy = defaultOwaMailboxPolicyId;
                    }
                }
                if (this.ShouldReadProperties(new ADPropertyDefinition[]
                {
                    ReducedRecipientSchema.SharingPolicy
                }) && reducedRecipient.SharingPolicy == null)
                {
                    reducedRecipient.SharingPolicy = base.GetDefaultSharingPolicyId(reducedRecipient, sharedConfig);
                }
                if (this.ShouldReadProperties(new ADPropertyDefinition[]
                {
                    ReducedRecipientSchema.RetentionPolicy
                }) && reducedRecipient.RetentionPolicy == null && reducedRecipient.ShouldUseDefaultRetentionPolicy)
                {
                    reducedRecipient.RetentionPolicy = base.GetDefaultRetentionPolicyId(reducedRecipient, sharedConfig);
                }
            }
            if (this.ShouldReadProperties(new ADPropertyDefinition[]
            {
                ReducedRecipientSchema.ActiveSyncMailboxPolicy,
                ReducedRecipientSchema.ActiveSyncMailboxPolicyIsDefaulted
            }) && reducedRecipient.ActiveSyncMailboxPolicy == null && !reducedRecipient.ExchangeVersion.IsOlderThan(ReducedRecipientSchema.ActiveSyncMailboxPolicy.VersionAdded))
            {
                ADObjectId defaultPolicyId = base.GetDefaultPolicyId(reducedRecipient);
                if (defaultPolicyId != null)
                {
                    reducedRecipient.ActiveSyncMailboxPolicy            = defaultPolicyId;
                    reducedRecipient.ActiveSyncMailboxPolicyIsDefaulted = true;
                }
            }
            if (this.ShouldReadProperties(new ADPropertyDefinition[]
            {
                ReducedRecipientSchema.AuthenticationType
            }) && reducedRecipient.OrganizationId.ConfigurationUnit != null)
            {
                SmtpAddress windowsLiveID = reducedRecipient.WindowsLiveID;
                if (reducedRecipient.WindowsLiveID.Domain != null && !reducedRecipient.ExchangeVersion.IsOlderThan(ExchangeObjectVersion.Exchange2010))
                {
                    reducedRecipient.AuthenticationType = MailboxTaskHelper.GetNamespaceAuthenticationType(reducedRecipient.OrganizationId, reducedRecipient.WindowsLiveID.Domain);
                }
            }
            if (this.ShouldReadProperties(new ADPropertyDefinition[]
            {
                ReducedRecipientSchema.Capabilities
            }))
            {
                reducedRecipient.PopulateCapabilitiesProperty();
            }
            return(reducedRecipient);
        }