diff --git a/src/Umbraco.Core/Dynamics/DynamicDocumentList.cs b/src/Umbraco.Core/Dynamics/DynamicDocumentList.cs index bf4462c212..1014c559ef 100644 --- a/src/Umbraco.Core/Dynamics/DynamicDocumentList.cs +++ b/src/Umbraco.Core/Dynamics/DynamicDocumentList.cs @@ -83,6 +83,11 @@ namespace Umbraco.Core.Dynamics result = new DynamicDocumentList(this.Take((int)args.First())); return true; } + if (name == "Skip") + { + result = new DynamicDocumentList(this.Skip((int)args.First())); + return true; + } if (name == "InGroupsOf") { int groupSize = 0; diff --git a/src/Umbraco.Tests/DynamicDocument/DynamicDocumentTestsBase.cs b/src/Umbraco.Tests/DynamicDocument/DynamicDocumentTestsBase.cs index 9a82cc6939..b2760d4f94 100644 --- a/src/Umbraco.Tests/DynamicDocument/DynamicDocumentTestsBase.cs +++ b/src/Umbraco.Tests/DynamicDocument/DynamicDocumentTestsBase.cs @@ -36,16 +36,39 @@ namespace Umbraco.Tests.DynamicDocument } [Test] - public void Take() + public void HasProperty() { var asDynamic = GetDynamicNode(1173); - var ordered = asDynamic.Children.OrderBy("UpdateDate"); - var take = ordered.Take(2); + var hasProp = asDynamic.HasProperty("umbracoUrlAlias"); + + Assert.AreEqual(true, (bool)hasProp); + + } + + [Test] + public void Skip() + { + var asDynamic = GetDynamicNode(1173); + + var skip = asDynamic.Children.Skip(2); + var casted = (IEnumerable)skip; + + Assert.AreEqual(2, casted.Count()); + Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[]{1177, 1178})); + + } + + [Test] + public void Take() + { + var asDynamic = GetDynamicNode(1173); + + var take = asDynamic.Children.Take(2); var casted = (IEnumerable)take; Assert.AreEqual(2, casted.Count()); - + Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1174, 1176 })); } [Test] diff --git a/src/umbraco.MacroEngines/RazorDynamicNode/DynamicNodeList.cs b/src/umbraco.MacroEngines/RazorDynamicNode/DynamicNodeList.cs index 24e2101dae..3dde965e0f 100644 --- a/src/umbraco.MacroEngines/RazorDynamicNode/DynamicNodeList.cs +++ b/src/umbraco.MacroEngines/RazorDynamicNode/DynamicNodeList.cs @@ -84,6 +84,11 @@ namespace umbraco.MacroEngines result = new DynamicNodeList(this.Take((int)args.First())); return true; } + if (name == "Skip") + { + result = new DynamicNodeList(this.Skip((int)args.First())); + return true; + } if (name == "InGroupsOf") { int groupSize = 0;