private StrategyScopeLocatorExecutionUnit CreateExecutionUnitForFinalFindAttribute(FindAttribute findAttribute, SearchOptions desiredSearchOptions)
        {
            object strategy = findAttribute.CreateStrategy();

            SearchOptions searchOptions = desiredSearchOptions.Clone();

            if (!desiredSearchOptions.IsVisibilitySet)
            {
                searchOptions.Visibility = findAttribute.Visibility;
            }

            if (!desiredSearchOptions.IsTimeoutSet)
            {
                searchOptions.Timeout = TimeSpan.FromSeconds(findAttribute.Timeout);
            }

            if (!desiredSearchOptions.IsRetryIntervalSet)
            {
                searchOptions.RetryInterval = TimeSpan.FromSeconds(findAttribute.RetryInterval);
            }

            ComponentScopeLocateOptions scopeLocateOptions = ComponentScopeLocateOptions.Create(_component, _component.Metadata, findAttribute);

            return(new StrategyScopeLocatorExecutionUnit(strategy, scopeLocateOptions, searchOptions));
        }
示例#2
0
        private StrategyScopeLocatorLayerExecutionUnit CreateExecutionUnitForLayerFindAttribute(FindAttribute findAttribute, SearchOptions desiredSearchOptions)
        {
            object strategy = findAttribute.CreateStrategy();

            // TODO: Set Timeout and RetryInterval too.
            SearchOptions searchOptions = new SearchOptions
            {
                IsSafely   = desiredSearchOptions.IsSafely,
                Visibility = findAttribute.Visibility
            };

            ComponentScopeLocateOptions scopeLocateOptions   = ComponentScopeLocateOptions.Create(component, findAttribute.Properties.Metadata, findAttribute);
            ILayerScopeContextResolver  scopeContextResolver = LayerScopeContextResolverFactory.Create(findAttribute.As);

            return(new StrategyScopeLocatorLayerExecutionUnit(strategy, scopeLocateOptions, searchOptions, scopeContextResolver));
        }
示例#3
0
        private StrategyScopeLocatorExecutionUnit CreateExecutionUnitForFinalFindAttribute(FindAttribute findAttribute, SearchOptions desiredSearchOptions)
        {
            object strategy = findAttribute.CreateStrategy();

            SearchOptions searchOptions = desiredSearchOptions.Clone();

            // TODO: Set Timeout and RetryInterval too.
            if (!desiredSearchOptions.IsVisibilitySet)
            {
                searchOptions.Visibility = findAttribute.Visibility;
            }

            ComponentScopeLocateOptions scopeLocateOptions = ComponentScopeLocateOptions.Create(component, component.Metadata, findAttribute);

            return(new StrategyScopeLocatorExecutionUnit(strategy, scopeLocateOptions, searchOptions));
        }
        private StrategyScopeLocatorLayerExecutionUnit CreateExecutionUnitForLayerFindAttribute(FindAttribute findAttribute, SearchOptions desiredSearchOptions)
        {
            object strategy = findAttribute.CreateStrategy();

            SearchOptions searchOptions = new SearchOptions
            {
                IsSafely      = desiredSearchOptions.IsSafely,
                Visibility    = findAttribute.Visibility,
                Timeout       = TimeSpan.FromSeconds(findAttribute.Timeout),
                RetryInterval = TimeSpan.FromSeconds(findAttribute.RetryInterval)
            };

            ComponentScopeLocateOptions scopeLocateOptions   = ComponentScopeLocateOptions.Create(_component, findAttribute.Properties.Metadata, findAttribute);
            ILayerScopeContextResolver  scopeContextResolver = LayerScopeContextResolverFactory.Create(findAttribute.As);

            return(new StrategyScopeLocatorLayerExecutionUnit(strategy, scopeLocateOptions, searchOptions, scopeContextResolver));
        }