public PropertyResult GetProperty(string alias, bool recursive, out bool propertyExists) { if (!recursive) { return(GetProperty(alias, out propertyExists)); } if (IsNull()) { propertyExists = false; return(null); } DynamicBackingItem context = this; PropertyResult prop = this.GetProperty(alias, out propertyExists); while (prop == null || string.IsNullOrEmpty(prop.Value)) { context = context.Parent; if (context == null) { break; } prop = context.GetProperty(alias, out propertyExists); } if (prop != null) { return(prop); } return(null); }
public PropertyResult GetProperty(string alias, out bool propertyExists) { if (IsNull()) { propertyExists = false; return(null); } PropertyResult property = null; IProperty innerProperty = null; if (Type == DynamicBackingItemType.Content) { innerProperty = content.GetProperty(alias, out propertyExists); if (innerProperty != null) { property = new PropertyResult(innerProperty); property.ContextAlias = content.NodeTypeAlias; property.ContextId = content.Id; } } else { string[] internalProperties = new string[] { "id", "nodeName", "updateDate", "writerName", "path", "nodeTypeAlias", "parentID", "__NodeId", "__IndexType", "__Path", "__NodeTypeAlias", "__nodeName", "umbracoBytes", "umbracoExtension", "umbracoFile", "umbracoWidth", "umbracoHeight" }; if (media.WasLoadedFromExamine && !internalProperties.Contains(alias) && !media.Values.ContainsKey(alias)) { //examine doesn't load custom properties innerProperty = media.LoadCustomPropertyNotFoundInExamine(alias, out propertyExists); if (innerProperty != null) { property = new PropertyResult(innerProperty); property.ContextAlias = media.NodeTypeAlias; property.ContextId = media.Id; } } else { innerProperty = media.GetProperty(alias, out propertyExists); if (innerProperty != null) { property = new PropertyResult(innerProperty); property.ContextAlias = media.NodeTypeAlias; property.ContextId = media.Id; } } } return(property); }
public PropertyResult GetProperty(string alias, out bool propertyExists) { if (IsNull()) { propertyExists = false; return null; } PropertyResult property = null; IProperty innerProperty = null; if (Type == DynamicBackingItemType.Content) { innerProperty = content.GetProperty(alias, out propertyExists); if (innerProperty != null) { property = new PropertyResult(innerProperty); property.ContextAlias = content.NodeTypeAlias; property.ContextId = content.Id; } } else { string[] internalProperties = new string[] { "id", "nodeName", "updateDate", "writerName", "path", "nodeTypeAlias", "parentID", "__NodeId", "__IndexType", "__Path", "__NodeTypeAlias", "__nodeName", Constants.Conventions.Media.Bytes, Constants.Conventions.Media.Extension, Constants.Conventions.Media.File, Constants.Conventions.Media.Width, Constants.Conventions.Media.Height }; if (media.WasLoadedFromExamine && !internalProperties.Contains(alias) && !media.Values.ContainsKey(alias)) { //examine doesn't load custom properties innerProperty = media.LoadCustomPropertyNotFoundInExamine(alias, out propertyExists); if (innerProperty != null) { property = new PropertyResult(innerProperty); property.ContextAlias = media.NodeTypeAlias; property.ContextId = media.Id; } } else { innerProperty = media.GetProperty(alias, out propertyExists); if (innerProperty != null) { property = new PropertyResult(innerProperty); property.ContextAlias = media.NodeTypeAlias; property.ContextId = media.Id; } } } return property; }