From 1a2bba4b2b3f2c7b257ba3b8d99ae7ca079798bc Mon Sep 17 00:00:00 2001 From: "agrath@gmail.com" Date: Sat, 12 Mar 2011 15:19:54 -1300 Subject: [PATCH] Added data type detection for MNTP/CSV to return List and fix for NodeById/MediaById to handle List correctly --- .../RazorDynamicNode/DynamicNode.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs index 3ffbebbcf4..43c82bb8f8 100644 --- a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs +++ b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs @@ -24,6 +24,7 @@ namespace umbraco.MacroEngines // these are private readonlys as const can't be Guids private readonly Guid DATATYPE_YESNO_GUID = new Guid("38b352c1-e9f8-4fd8-9324-9a2eab06d97a"); private readonly Guid DATATYPE_TINYMCE_GUID = new Guid("5e9b75ae-face-41c8-b47e-5f4b0fd82f83"); + private readonly Guid DATATYPE_UCOMPONENTS_MNTP_GUID = new Guid("c2d6894b-e788-4425-bcf2-308568e3d38b"); #endregion internal DynamicNodeList ownerList; @@ -329,6 +330,18 @@ namespace umbraco.MacroEngines return true; } + //MNTP List + if (dataType == DATATYPE_UCOMPONENTS_MNTP_GUID) + { + string sResult = string.Format("{0}", result); + //csv mode + if (!sResult.Contains("<")) + { + result = sResult.Split(',').Select(id => int.Parse(id)).ToList(); + return true; + } + } + //decimal decimal dResult = 0; if (decimal.TryParse(string.Format("{0}", result).Replace(",", "."), out dResult)) @@ -723,6 +736,13 @@ namespace umbraco.MacroEngines nodes.Add(new DynamicNode(eachId)); return new DynamicNodeList(nodes); } + public DynamicNodeList NodeById(List Ids) + { + List nodes = new List(); + foreach (int eachId in Ids) + nodes.Add(new DynamicNode(eachId)); + return new DynamicNodeList(nodes); + } public DynamicNodeList NodeById(params object[] Ids) { return NodeById(Ids.ToList()); @@ -746,6 +766,13 @@ namespace umbraco.MacroEngines nodes.Add(new DynamicMedia(eachId)); return new DynamicMediaList(nodes); } + public DynamicMediaList MediaById(List Ids) + { + List nodes = new List(); + foreach (int eachId in Ids) + nodes.Add(new DynamicMedia(eachId)); + return new DynamicMediaList(nodes); + } public DynamicMediaList MediaById(params object[] Ids) { return MediaById(Ids.ToList());