private void ProcessItemRepeaterElement(RepeaterElement itemRepeaterElement, DataReader reader, int index, XElement previous) { var readers = reader.GetReaders(itemRepeaterElement.Expression); var itemRepeaterTag = GenerateItemRepeaterTag(itemRepeaterElement); var parser = new ItemRepeaterParser(); parser.Parse(itemRepeaterTag, readers.ToList()); }
private void ProcessItemIfElement(RepeaterElement ifElement, DataReader dataReader, ref XElement endIfElement) { var expression = ifElement.Expression; var condition = bool.Parse(dataReader.ReadText(expression)); if (!condition) { endIfElement = ifElement.EndTag; } }
private ItemRepeaterTag GenerateItemRepeaterTag(RepeaterElement itemRepeaterElement) { var tagResult = new ItemRepeaterTag() { StartItemRepeater = itemRepeaterElement.StartTag, EndItemRepeater = itemRepeaterElement.EndTag, NestedRepeaters = new List<ItemRepeaterTag>(), Source = itemRepeaterElement.Expression }; foreach (var element in itemRepeaterElement.TagElements.Where(element => element.IsItemRepeater)) { tagResult.NestedRepeaters.Add(this.GenerateItemRepeaterTag(element)); } return tagResult; }
private ItemRepeaterTag GenerateItemRepeaterTag(RepeaterElement itemRepeaterElement) { var tagResult = new ItemRepeaterTag() { StartItemRepeater = itemRepeaterElement.StartTag, EndItemRepeater = itemRepeaterElement.EndTag, NestedRepeaters = new List <ItemRepeaterTag>(), Source = itemRepeaterElement.Expression }; foreach (var element in itemRepeaterElement.TagElements.Where(element => element.IsItemRepeater)) { tagResult.NestedRepeaters.Add(this.GenerateItemRepeaterTag(element)); } return(tagResult); }