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); }
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; }
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); }
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; }
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); } }
public static Extractor GetExtractor(ExtractBy extractBy) { ISelector selector = GetSelector(extractBy); return(new Extractor(selector, extractBy.Source, extractBy.NotNull, extractBy.Multi, extractBy.Expresion, extractBy.Count)); }
public static Extractor GetExtractor(ExtractBy extractBy) { ISelector selector = GetSelector(extractBy); return new Extractor(selector, extractBy.Source, extractBy.NotNull, extractBy.Multi, extractBy.Expresion,extractBy.Count); }