protected override bool ProcessInternal(PropertyBag propertyBag)
        {
            ADObjectId tenantOU = ProcessorHelper.GetTenantOU(propertyBag);

            if (tenantOU != null)
            {
                ADRawEntry properties = this.organizationPropertyLookup.GetProperties(tenantOU);
                if (properties != null)
                {
                    string value = (string)properties[ExchangeConfigurationUnitSchema.ExternalDirectoryOrganizationId];
                    if (!string.IsNullOrEmpty(value))
                    {
                        propertyBag.SetField(SyncObjectSchema.ContextId, value);
                        if (ProcessorHelper.IsObjectOrganizationUnit(propertyBag))
                        {
                            if (this.ShouldIgnoreOrganizationUnit(propertyBag))
                            {
                                ExTraceGlobals.BackSyncTracer.TraceDebug((long)SyncConfiguration.TraceId, "<OrganizationFilter.ProcessInternal> tenant has no output attribute. Skip processing.");
                                return(false);
                            }
                            propertyBag.SetField(SyncObjectSchema.ObjectId, value);
                        }
                        propertyBag.SetField(OrganizationSchema.IsDirSyncRunning, properties[OrganizationSchema.IsDirSyncRunning]);
                        propertyBag.SetField(OrganizationSchema.DirSyncStatus, properties[OrganizationSchema.DirSyncStatus]);
                        if (OrganizationFilter.IsExcludedOrg(properties))
                        {
                            this.reporter.ReportExcludedObject(propertyBag, DirectoryObjectErrorCode.UnspecifiedError, ProcessingStage.OrganizationFilter);
                            return(false);
                        }
                        return(true);
                    }
                }
            }
            this.reporter.ReportExcludedObject(propertyBag, DirectoryObjectErrorCode.ObjectOutOfScope, ProcessingStage.OrganizationFilter);
            return(false);
        }