Ejemplo n.º 1
0
        public static ISelector GetSelector(ExtractBy extractBy)
        {
            string    value = extractBy.Value;
            ISelector selector;

            switch (extractBy.Type)
            {
            case ExtractBy.ExtracType.Css:
                selector = new CssSelector(value);
                break;

            case ExtractBy.ExtracType.Regex:
                selector = new RegexSelector(value);
                break;

            case ExtractBy.ExtracType.XPath:
                selector = GetXpathSelector(value);
                break;

            case ExtractBy.ExtracType.JsonPath:
                selector = new JsonPathSelector(value);
                break;

            case ExtractBy.ExtracType.Enviroment:
                selector = new EnviromentSelector(value);
                break;

            default:
                selector = GetXpathSelector(value);
                break;
            }
            return(selector);
        }
Ejemplo n.º 2
0
 public static ISelector GetSelector(ExtractBy extractBy)
 {
     string value = extractBy.Value;
     ISelector selector;
     switch (extractBy.Type)
     {
         case ExtractBy.ExtracType.Css:
             selector = new CssSelector(value);
             break;
         case ExtractBy.ExtracType.Regex:
             selector = new RegexSelector(value);
             break;
         case ExtractBy.ExtracType.XPath:
             selector = GetXpathSelector(value);
             break;
         case ExtractBy.ExtracType.JsonPath:
             selector = new JsonPathSelector(value);
             break;
         case ExtractBy.ExtracType.Enviroment:
             selector = new EnviromentSelector(value);
             break;
         default:
             selector = GetXpathSelector(value);
             break;
     }
     return selector;
 }
Ejemplo n.º 3
0
        private FieldExtractor GetAnnotationExtractBy(PropertyInfo field)
        {
            FieldExtractor fieldExtractor = null;
            ExtractBy      extractBy      = (ExtractBy)field.GetCustomAttribute(typeof(ExtractBy));

            if (extractBy != null)
            {
                ISelector selector = ExtractorUtils.GetSelector(extractBy);
                fieldExtractor = new FieldExtractor(field, selector, extractBy.Source,
                                                    extractBy.NotNull, extractBy.Multi || field.PropertyType.IsGenericType, extractBy.Expresion);
            }
            return(fieldExtractor);
        }
Ejemplo n.º 4
0
 public static IList<ISelector> GetSelectors(ExtractBy[] extractBies)
 {
     IList<ISelector> selectors = new List<ISelector>();
     if (extractBies == null)
     {
         return selectors;
     }
     foreach (ExtractBy extractBy in extractBies)
     {
         selectors.Add(GetSelector(extractBy));
     }
     return selectors;
 }
Ejemplo n.º 5
0
        private void InitTypeExtractors()
        {
            System.Attribute annotation = _modelType.GetCustomAttribute <TargetUrl>();
            if (annotation == null)
            {
                _targetUrlPatterns.Add(new Regex("(.*)"));
            }
            else
            {
                TargetUrl targetUrl = (TargetUrl)annotation;
                string[]  value     = targetUrl.Value;

                if (value != null)
                {
                    foreach (string s in value)
                    {
                        _targetUrlPatterns.Add(new Regex("(" + s.Replace(".", "\\.").Replace("*", "[^\"'#]*") + ")"));
                    }
                }
                else
                {
                    _targetUrlPatterns.Add(new Regex("(.*)"));
                }

                _targetUrlRegionSelector = new XPathSelector(string.IsNullOrEmpty(targetUrl.SourceRegion) ? "." : targetUrl.SourceRegion);
            }
            annotation = _modelType.GetCustomAttribute <HelpUrl>();
            if (annotation != null)
            {
                HelpUrl  helpUrl = (HelpUrl)annotation;
                string[] value   = helpUrl.Value;
                foreach (string s in value)
                {
                    _helpUrlPatterns.Add(new Regex("(" + s.Replace(".", "\\.").Replace("*", "[^\"'#]*") + ")"));
                }
                if (!string.IsNullOrEmpty(helpUrl.SourceRegion))
                {
                    _helpUrlRegionSelector = new XPathSelector(helpUrl.SourceRegion);
                }
            }
            annotation = _modelType.GetCustomAttribute <ExtractBy>();
            if (annotation != null)
            {
                ExtractBy extractBy = (ExtractBy)annotation;

                _objectExtractor = ExtractorUtils.GetExtractor(extractBy);
            }
        }
Ejemplo n.º 6
0
        public static Extractor GetExtractor(ExtractBy extractBy)
        {
            ISelector selector = GetSelector(extractBy);

            return(new Extractor(selector, extractBy.Source, extractBy.NotNull, extractBy.Multi, extractBy.Expresion, extractBy.Count));
        }
Ejemplo n.º 7
0
 public static Extractor GetExtractor(ExtractBy extractBy)
 {
     ISelector selector = GetSelector(extractBy);
     return new Extractor(selector, extractBy.Source, extractBy.NotNull, extractBy.Multi, extractBy.Expresion,extractBy.Count);
 }