public IEnumerable <Element> GetChildren(EntityToken entityToken, SearchToken searchToken) { if (UserValidationFacade.IsLoggedIn() && !DataLocalizationFacade.ActiveLocalizationCultures.Contains(UserSettings.ActiveLocaleCultureInfo)) { return(Enumerable.Empty <Element>()); } if (entityToken is AssociatedDataElementProviderHelperEntityToken associatedData) { return(_pageAssociatedHelper.GetChildren(associatedData, false)); } if (entityToken is DataGroupingProviderHelperEntityToken dataGrouping) { return(_pageAssociatedHelper.GetChildren(dataGrouping, false)); } using (new DataScope(DataScopeIdentifier.Administrated)) { var allChildPages = GetChildrenPages(entityToken, searchToken); List <KeyValuePair <PageLocaleState, IPage> > childPages = IEnumerableExtensionMethods.ToList(allChildPages, f => new KeyValuePair <PageLocaleState, IPage>(PageLocaleState.Own, f)); List <Element> childPageElements = GetElements(childPages, entityToken is PageElementProviderEntityToken); return(GetChildElements(entityToken, childPageElements)); } }
public MutableString RemoveAllExcept(IEnumerable <char> values) { if (null == values) { throw new ArgumentNullException("values"); } if (0 == _value.Length) { return(this); } #if NET20 var list = IEnumerableExtensionMethods.ToList(values); #else var list = values.ToList(); #endif if (0 == list.Count) { return(Clear()); } for (var i = _value.Length - 1; i > -1; i--) { if (list.Contains(_value[i])) { continue; } Remove(i, 1); } return(this); }
private static DataRow FillNormalDataRow(DataRow obj, HtmlNode row) { #if NET20 var cells = IEnumerableExtensionMethods.ToList(row.Descendants("td")); #else var cells = row.Descendants("td").ToList(); #endif if (0 == cells.Count) { return(obj); } var i = 0; foreach (var cell in cells) { var attribute = cell.Attributes["colspan"]; var span = null == attribute ? 1 : XmlConvert.ToInt32(attribute.Value); for (var s = 0; s < span; s++) { obj[i++] = cell; } } return(obj); }
private static void AddVerticalDataRows(DataTable obj, HtmlNode body) { #if NET20 var rows = IEnumerableExtensionMethods.ToList(body.Descendants("tr")); var cells = 0; foreach (var row in rows) { cells = Math.Max(cells, IEnumerableExtensionMethods.Count(row.Descendants("td"))); } #else var rows = body.Descendants("tr").ToList(); var cells = rows .Select(row => row.Descendants("td").Count()) .Concat(new[] { 0 }) .Max(); #endif for (var i = 0; i < cells; i++) { obj.Rows.Add(obj.NewRow()); } var column = 0; foreach (var item in rows) { var current = column; var row = -1; foreach (var cell in item.Descendants("td")) { row++; for (var c = current; c < obj.Columns.Count; c++) { if (DBNull.Value == obj.Rows[row][current]) { break; } row++; } var attribute = cell.Attributes["rowspan"]; var span = null == attribute ? 1 : XmlConvert.ToInt32(attribute.Value); if (1 == span) { obj.Rows[row][current] = cell; continue; } for (var s = 0; s < span; s++) { obj.Rows[row][current + s] = cell; } } column++; } }
public LexicalMatch MatchWithin(string value) { if (null == value) { throw new ArgumentNullException("value"); } if (0 == value.Length) { return(null); } var result = Match(value); if (null != result) { return(result); } var parts = value.Split(' '); if (parts.Length < 2) { return(null); } var mutable = new MutableString(value); #if NET20 foreach (var part in PartsWithin(IEnumerableExtensionMethods.ToList(mutable.ToString().Split(' ')))) #else foreach (var part in PartsWithin(mutable.ToString().Split(' ').ToList())) #endif { result = Match(part); if (null == result) { continue; } #if NET20 var splits = StringExtensionMethods.Split(value, part, StringSplitOptions.None); #else var splits = value.Split(part, StringSplitOptions.None); #endif if (2 != splits.Length) { continue; } result.Prefix = splits[0].Trim(); result.Suffix = splits[1].Trim(); return(result); } return(null); }
protected virtual IList <string> NextLine() { Line = null; while (!EndOfStream) { Line = ReadLine(); LineNumber++; if (!string.IsNullOrEmpty(Line)) { break; } } return(string.IsNullOrEmpty(Line) ? null #if NET20 : IEnumerableExtensionMethods.ToList(Line.Split('\t')));
public LexicalMatch MatchEnding(string value) { if (null == value) { throw new ArgumentNullException("value"); } if (0 == value.Length) { return(null); } var result = Match(value); if (null != result) { return(result); } var substring = new MutableString(value); var clone = substring.Clone(); #if NET20 foreach (var word in IEnumerableExtensionMethods.ToList(substring.ToString().Split(' '))) #else foreach (var word in substring.ToString().Split(' ').ToList()) #endif { substring.RemoveFromStart(word).Trim(); result = Match(substring); if (null == result) { continue; } result.Prefix = clone.Prefix(substring).Trim(); return(result); } return(null); }
public IEnumerable <Element> GetChildren(EntityToken entityToken, SearchToken searchToken) { if (entityToken is AssociatedDataElementProviderHelperEntityToken) { return(_pageAssociatedHelper.GetChildren((AssociatedDataElementProviderHelperEntityToken)entityToken, false)); } if (entityToken is DataGroupingProviderHelperEntityToken) { return(_pageAssociatedHelper.GetChildren((DataGroupingProviderHelperEntityToken)entityToken, false)); } using (new DataScope(DataScopeIdentifier.Administrated)) { var allChildPages = GetChildrenPages(entityToken, searchToken); List <KeyValuePair <PageLocaleState, IPage> > childPages = IEnumerableExtensionMethods.ToList(allChildPages, f => new KeyValuePair <PageLocaleState, IPage>(PageLocaleState.Own, f)); List <Element> childPageElements = GetElements(childPages, entityToken is PageElementProviderEntityToken); return(GetChildElements(entityToken, childPageElements)); } }
private static IList <string> ColumnsRow(HtmlNode table) { var list = new List <string>(); #if NET20 var row = IEnumerableExtensionMethods.FirstOrDefault(table.Descendants("tr")); #else var row = table.Descendants("tr").FirstOrDefault(); #endif if (null == row) { return(list); } #if NET20 var headers = IEnumerableExtensionMethods.ToList(row.Descendants("th")); #else var headers = row.Descendants("th").ToList(); #endif if (0 == headers.Count) { #if NET20 headers = IEnumerableExtensionMethods.ToList(row.Descendants("td")); #else headers = row.Descendants("td").ToList(); #endif } #if NET20 foreach (var header in headers) { list.Add(ColumnName(header)); } #else list.AddRange(headers.Select(ColumnName)); #endif return(list); }
private static void FillDataTable(DataTable obj, HtmlNode table) { #if NET20 var body = 0 != IEnumerableExtensionMethods.Count(table.Descendants("thead")) ? IEnumerableExtensionMethods.First(table.Descendants("tbody")) : table; var rows = IEnumerableExtensionMethods.ToList(body.Descendants("tr")); #else var body = table.Descendants("thead").Any() ? table.Descendants("tbody").First() : table; var rows = body.Descendants("tr").ToList(); #endif if (HasVerticalColumns(table)) { AddVerticalDataColumns(obj, body); AddVerticalDataRows(obj, body); return; } var columns = Columns(table); for (var i = 0; i < columns.Count; i++) { #if NET20 || NET35 var name = string.IsNullOrEmpty(columns[i]) #else var name = string.IsNullOrWhiteSpace(columns[i]) #endif ? XmlConvert.ToString(i) : columns[i]; obj.Columns.Add(name, typeof(HtmlNode)); } AddNormalDataRows(obj, rows); }
private static IList <string> ColumnsHead(HtmlNode head) { #if NET20 var rows = IEnumerableExtensionMethods.ToList(head.Descendants("tr")); #else var rows = head.Descendants("tr").ToList(); #endif if (0 == rows.Count) { return(new List <string>()); } var matrix = new Matrix <string>(); foreach (var cell in rows[0].Descendants("th")) { var colspan = cell.Attributes["colspan"]; if (null == colspan) { matrix.Width++; continue; } for (var i = 0; i < XmlConvert.ToInt32(colspan.Value); i++) { matrix.Width++; } } var carry = new List <int>(); for (var i = 0; i < matrix.Width; i++) { carry.Add(0); } var y = 0; foreach (var row in rows) { var x = 0; matrix.Height++; foreach (var cell in row.Descendants("th")) { while (0 != carry[x]) { matrix[x, y] = matrix[x, y - 1]; carry[x]--; x++; } var rowspan = cell.Attributes["rowspan"]; if (null != rowspan) { carry[x] = XmlConvert.ToInt32(rowspan.Value); } var colspan = cell.Attributes["colspan"]; var name = ColumnName(cell); var index = 1; for (var i = 0; i < (null == colspan ? 1 : XmlConvert.ToInt32(colspan.Value)); i++) { matrix[x++, y] = string.Format(CultureInfo.InvariantCulture, null == colspan ? "{0}" : "{0} ({1})", name, index++); } } y++; } #if NET20 var list = new List <string>(); foreach (var element in matrix.Row(matrix.Height - 1)) { list.Add(element); } return(list); #else return(matrix.Row(matrix.Height - 1).ToList()); #endif }