Implemented DynamicNodeList.InGroupsOf, DynamicNodeList.GroupedInto and DynamicNodeList.GroupBy

This commit is contained in:
agrath@gmail.com
2011-06-13 08:53:06 -02:00
parent fbe150c1ce
commit d2ddd9a284
4 changed files with 101 additions and 12 deletions

View File

@@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace umbraco.MacroEngines
{
public class DynamicGrouping : IEnumerable
{
public IEnumerable<Grouping<object, DynamicNode>> Inner;
public DynamicGrouping OrderBy(string expression)
{
return this;
}
public DynamicGrouping(DynamicNodeList list, string groupBy)
{
Inner =
list
.Items
.GroupBy(item =>
{
object result = null;
item.TryGetMember(new DynamicQueryableGetMemberBinder(groupBy, false), out result);
return result;
})
.Select(item => new Grouping<object, DynamicNode>()
{
Key = item.Key,
Elements = item.Select(inner => inner)
});
}
public DynamicGrouping(IEnumerable<Grouping<object, DynamicNode>> source)
{
this.Inner = source;
}
public IEnumerator GetEnumerator()
{
return Inner.GetEnumerator();
}
}
}