Commit Graph

18 Commits

Author SHA1 Message Date
agrath
3b0f2804fd Fixed IsHelpers on IGrouping (DynamicNode.GroupBy) 2011-12-04 15:07:58 -13:00
agrath
b7caa18309 Added a fake getter method to .Items on DynamicNodeList that was tripping up the latest uBlogsy beta. Could be a backwards compatibility issue 2011-09-22 13:10:01 -12:00
agrath
e2a60d55ff Changed the return type of Pluck when the list was empty from DynamicNull to List<Object>[0] 2011-09-01 08:46:18 -12:00
agrath
265fc0b3ca Improved the handling of DynamicNull when using OrderBy 2011-08-29 11:19:34 -12:00
agrath
e2e0186174 Added TryGetIndex to DynamicNodeList to allow [] indexing 2011-08-01 11:11:00 -12:00
agrath
7d3cfa4151 Added .Except, .Intersect, .Union and .Distinct to DynamicNodeList 2011-07-31 17:05:44 -12:00
agrath@gmail.com
a66847587c Added pluck aggregates Sum/Average/Min/Max to DynamicNodeList 2011-07-11 12:20:02 -12:00
agrath@gmail.com
d2ddd9a284 Implemented DynamicNodeList.InGroupsOf, DynamicNodeList.GroupedInto and DynamicNodeList.GroupBy 2011-06-13 08:53:06 -02:00
agrath@gmail.com
918cdcdffb Added XPath filter & search to DynamicXml class
Added empty method stubs to DynamicNodeList for grouping functionality
2011-06-13 07:13:00 -02:00
agrath@gmail.com
d63ae05693 Got rid of DynamicMedia and DynamicMediaList implementations (still there but subclasses of DynamicNode & DynamicNodeList now) to enable navigation on Media
Started implementing ExamineBackedMedia instead of using new Media()
2011-06-11 22:15:01 -02:00
agrath@gmail.com
b198edeeaa Made DynamicNodeList.Where, DynamicNodeList.OrderBy public again 2011-03-25 09:33:39 -13:00
agrath@gmail.com
93d65ced40 Add IsNull and HasValue methods to Dynamic* classes
**Breaking Change: DynamicNull.HasValue and DynamicNull.IsNull have been changed from properties to methods
Rename umbraco.MacroEngines.ExtensionMethods as umbraco.MacroEngines.PrivateExtensionMethods
Implement extension method invokes for DynamicNode
2011-03-22 18:02:32 -13:00
agrath@gmail.com
1b060dfdbf Implemented Pluck/Select to extract a given property from a DynamicNodeList and return it as a List<T>
Example:
var colours = @Model.Children.Select("colour");
//Red, Green, Blue ...
Uses the parser from .Where internally
Aliased as .Pluck
2011-03-12 16:29:02 -13:00
agrath@gmail.com
b624d7479a Fixes work item: 30156, using prop.Contains(string) || !prop.Contains(string)
Added ContainsInsensitive extension method for use inside .Where (fixed method finder too)
2011-03-12 12:33:09 -13:00
agrath@gmail.com
fa5b85557f Added support to DynamicNodeList for .Add and .Remove methods to support this use case:
http://our.umbraco.org/forum/developers/razor/17934-Creating-a-DynamicNodeList-with-a-'for'-loop
2011-03-08 19:06:55 -13:00
agrath@gmail.com
cbe94ae6aa Refactored ExtensionMethod search code from DynamicNodeList (searches for extension methods e.g. .Random()) to tidy it up
Moved Extension Method searching code to seperate static class
Moved all the defined extension methods for DynamicNode into the same ExtensionMethods.cs file
Changed the way that .ContainsAny within a where is evaluated to use the ExtensionMethodFinder class - should allow extra search methods to be defined
2011-02-26 16:15:45 -13:00
agrath@gmail.com
71c5e35443 Added DynamicNodeWalker and implementation on DynamicNode and DynamicNodeList
DynamicNodeWalker is our secret weapon in the fight against the Rebel XSLT Alliance
Navigate nodes by calling Up(), Down(), Next() and Previous() on them
Next(1) will jump two items along within the current list, whereas Next() will walk by one within the list
Previous(1) will move two items backwards within the current list
Up() is a special wrapper around .Parent which has an overload .Up(int) to replace @Model.Parent.Parent.Parent... [.Up(2)]
Down() will take you to the first Child item and is equivilent to .Children.First(), use .Down(1) to replace .Children.First().Children
If one of the NodeWalker functions fails to find a node at the requested position, it will return null
2011-02-24 17:19:50 -13:00
agrath@gmail.com
603a12c5a0 Split umbraco.MacroEngines.Juno into two subfolders (namespaces remain the same)
RazorCore contains all the core razor engine implementation
RazorDynamicNode contains all the DynamicNode functionality and associated support files
2011-02-24 16:05:54 -13:00