From 39617874632bf1814c5003b4208e05a2b7d8685f Mon Sep 17 00:00:00 2001 From: "agrath@gmail.com" Date: Fri, 25 Feb 2011 00:51:41 -1300 Subject: [PATCH] Added DynamicNode.HasProperty(string) method to check to see if a particular DynamicNode has a property --- .../RazorDynamicNode/DynamicNode.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs index 7ed2f94c57..b57d309ed0 100644 --- a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs +++ b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs @@ -170,7 +170,30 @@ namespace umbraco.MacroEngines throw new NullReferenceException("DynamicNode wasn't initialized with an underlying NodeFactory.Node"); } } - + public bool HasProperty(string name) + { + if (n != null) + { + try + { + IProperty prop = n.GetProperty(name); + if (prop == null) + { + // check for nicer support of Pascal Casing EVEN if alias is camelCasing: + if (prop == null && name.Substring(0, 1).ToUpper() == name.Substring(0, 1)) + { + prop = n.GetProperty(name.Substring(0, 1).ToLower() + name.Substring((1))); + } + } + return (prop != null); + } + catch (Exception) + { + return false; + } + } + return false; + } public override bool TryGetMember(GetMemberBinder binder, out object result) {