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 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 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);
        }