From eba7c9d550d25623723d946f474de2ca212048cb Mon Sep 17 00:00:00 2001 From: "agrath@gmail.com" Date: Wed, 2 Feb 2011 15:51:51 -1300 Subject: [PATCH] Overloads for DynamicMedia and DynamicNode constructors that take object and string respectively New DynamicNode .MediaById (because @Model is DynamicNode) to find a media item by id, e.g. if you are using it with @Model.Parameters.imageId Overloads for MediaById and NodeById that take object and string to match constructors --- umbraco.MacroEngines.Juno/DynamicMedia.cs | 18 ++++++++++++ umbraco.MacroEngines.Juno/DynamicNode.cs | 36 +++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/umbraco.MacroEngines.Juno/DynamicMedia.cs b/umbraco.MacroEngines.Juno/DynamicMedia.cs index 5533d38ceb..cc0fd957cd 100644 --- a/umbraco.MacroEngines.Juno/DynamicMedia.cs +++ b/umbraco.MacroEngines.Juno/DynamicMedia.cs @@ -22,6 +22,24 @@ namespace umbraco.MacroEngines _media = media; _propertyCache = new Dictionary(); } + public DynamicMedia(string mediaId) + { + int iMediaId = 0; + if (int.TryParse(mediaId, out iMediaId)) + { + _media = new Media(iMediaId); + _propertyCache = new Dictionary(); + } + } + public DynamicMedia(object mediaId) + { + int iMediaId = 0; + if (int.TryParse(string.Format("{0}", mediaId), out iMediaId)) + { + _media = new Media(iMediaId); + _propertyCache = new Dictionary(); + } + } public DynamicMedia() { diff --git a/umbraco.MacroEngines.Juno/DynamicNode.cs b/umbraco.MacroEngines.Juno/DynamicNode.cs index 1d82e08ba9..bef5ea2bce 100644 --- a/umbraco.MacroEngines.Juno/DynamicNode.cs +++ b/umbraco.MacroEngines.Juno/DynamicNode.cs @@ -29,6 +29,22 @@ namespace umbraco.MacroEngines { this.n = new NodeFactory.Node(NodeId); } + public DynamicNode(string NodeId) + { + int iNodeId = 0; + if (int.TryParse(NodeId, out iNodeId)) + { + this.n = new NodeFactory.Node(iNodeId); + } + } + public DynamicNode(object NodeId) + { + int iNodeId = 0; + if (int.TryParse(string.Format("{0}", NodeId), out iNodeId)) + { + this.n = new NodeFactory.Node(iNodeId); + } + } public DynamicNode() { //Empty constructor for a special case with Generic Methods @@ -315,6 +331,26 @@ namespace umbraco.MacroEngines { return new DynamicNode(Id); } + public DynamicNode NodeById(string Id) + { + return new DynamicNode(Id); + } + public DynamicNode NodeById(object Id) + { + return new DynamicNode(Id); + } + public DynamicMedia MediaById(int Id) + { + return new DynamicMedia(Id); + } + public DynamicMedia MediaById(string Id) + { + return new DynamicMedia(Id); + } + public DynamicMedia MediaById(object Id) + { + return new DynamicMedia(Id); + } public int Id { get { if (n == null) return 0; return n.Id; }