public string[] GenerateHelpers(string className, string selector, IPropertyGenerator generator) { string propName = SelectorUtils.GetClassOrPropNameFromSelector(selector); string propertyNameFromGenerator = generator.GetPropertyName(Type, propName); string methodPropName = TextUtils.UppercaseFirst(propName); StringBuilder builder = new StringBuilder(); string helper = builder .AppendLine($"public {className} With{methodPropName}(string {propName})") .AppendLine("{") .AppendLine($"{propertyNameFromGenerator}.SendKeys({propName});") .AppendLine("return this;") .AppendLine("}") .ToString(); return(new [] { helper }); }
private IEnumerable <ComponentGeneratorOutput> CreateCsOutput(string selector, AutoElementData current, IComponentFileCreator parentClassCreator = null) { RunCustomAttributesAppends(current, parentClassCreator); if (IsBasicElement(current)) { return(new List <ComponentGeneratorOutput>()); } string keyWord = SelectorUtils.GetKeyWordFromSelector(selector); AutoElementData[] children = current.InnerChildrens as AutoElementData[] ?? current.InnerChildrens.ToArray(); AutoElementData[] filteredChildren = children .Where(elm => !IsAppenderElement(elm)) .ToArray(); if (IsAppenderElement(current)) { return(GenerateAppenderOutputs(current, parentClassCreator, keyWord, filteredChildren)); } return(GenerateFileCreatorOutputs(selector, keyWord, children, filteredChildren)); }
private object ExtractField(ISelectable item, Page page, Column field, int index) { if (field == null) { return(null); } ISelector selector = SelectorUtils.Parse(field.Selector); if (selector == null) { return(null); } if (selector is EnviromentSelector) { var enviromentSelector = selector as EnviromentSelector; var value = SelectorUtils.GetEnviromentValue(enviromentSelector.Field, page, index); foreach (var formatter in field.Formatters) { #if DEBUG try { #endif value = formatter.Formate(value); #if DEBUG } catch (Exception e) { Logger.Error(e.ToString()); } #endif } return(TryConvert(value, field.DataType)); } else { bool needCount = field.Option == PropertyDefine.Options.Count; if (needCount) { var values = item.SelectList(selector).Nodes(); return(values.Count); } else { var value = (object)item.Select(selector)?.GetValue(field.Option == PropertyDefine.Options.PlainText); foreach (var formatter in field.Formatters) { #if DEBUG try { #endif value = formatter.Formate(value); #if DEBUG } catch (Exception e) { Logger.Error(e.ToString()); } #endif } return(TryConvert(value, field.DataType)); } } }
private dynamic ExtractField(ISelectable item, Page page, Column field, int index) { if (field == null) { return(null); } ISelector selector = SelectorUtils.Parse(field.Selector); if (selector == null) { return(null); } string tmpValue; if (selector is EnviromentSelector) { var enviromentSelector = selector as EnviromentSelector; tmpValue = GetEnviromentValue(enviromentSelector.Field, page, index); foreach (var formatter in field.Formatters) { tmpValue = formatter.Formate(tmpValue); } return(tmpValue); } else { bool needPlainText = field.Option == PropertyDefine.Options.PlainText; if (field.Multi) { var propertyValues = item.SelectList(selector).Nodes(); List <string> results = new List <string>(); foreach (var propertyValue in propertyValues) { results.Add(propertyValue.GetValue(needPlainText)); } foreach (var formatter in field.Formatters) { results = formatter.Formate(results); } return(new JArray(results)); } else { bool needCount = field.Option == PropertyDefine.Options.Count; if (needCount) { var propertyValues = item.SelectList(selector).Nodes(); string count = propertyValues?.Count.ToString(); count = string.IsNullOrEmpty(count) ? "-1" : count; return(count); } else { tmpValue = item.Select(selector)?.GetValue(needPlainText); foreach (var formatter in field.Formatters) { tmpValue = formatter.Formate(tmpValue); } return(tmpValue); } } } }
private dynamic ExtractField(ISelectable item, Page page, Column field, int index) { if (field == null) { return(null); } ISelector selector = SelectorUtils.Parse(field.Selector); if (selector == null) { return(null); } if (selector is EnviromentSelector) { var enviromentSelector = selector as EnviromentSelector; var tmpValue = SelectorUtils.GetEnviromentValue(enviromentSelector.Field, page, index); foreach (var formatter in field.Formatters) { #if DEBUG try { #endif tmpValue = formatter.Formate(tmpValue); #if DEBUG } catch (Exception e) { } #endif } return(tmpValue == null ? null : Convert.ChangeType(tmpValue, field.DataType)); } else { bool needPlainText = field.Option == PropertyDefine.Options.PlainText; if (field.Multi) { var propertyValues = item.SelectList(selector).Nodes(); List <dynamic> results = new List <dynamic>(); foreach (var propertyValue in propertyValues) { results.Add(Convert.ChangeType(propertyValue.GetValue(needPlainText), field.DataType)); } foreach (var formatter in field.Formatters) { #if DEBUG try { #endif results = formatter.Formate(results); #if DEBUG } catch (Exception e) { } #endif } return(results); } else { bool needCount = field.Option == PropertyDefine.Options.Count; if (needCount) { var values = item.SelectList(selector).Nodes(); return(values.Count); } else { var value = item.Select(selector)?.GetValue(needPlainText); dynamic tmpValue = value; foreach (var formatter in field.Formatters) { #if DEBUG try { #endif tmpValue = formatter.Formate(tmpValue); #if DEBUG } catch (Exception e) { } #endif } return(tmpValue == null ? null : Convert.ChangeType(tmpValue, field.DataType)); } } } }
private bool IsAppenderElement(AutoElementData childData) { string keyWord = SelectorUtils.GetKeyWordFromSelector(childData.Selector); return(_classAppenderContainer.ContainsAppender(keyWord)); }