Best solution I'm aware of for this is to look after the nodeObjectType property on your node object (returns a guid) and compare it with existing guid for the different node types (content, media, stylesheet, ...)
For example:
public static Guid _objectType = new Guid("b796f64c-1f99-4ffb-b886-4bf4bc011a9c"); // static Guid on the Media class
and compare this with the myNode.nodeObjectType (which is also a guid). If both are equal, then node myNode is of that type.
As that guid is a static field on the type! As in example above, the guid is for the MediaType (such as the File, Folder and Image from the media section)
A node mediaNode is of type Media if
mediaNode._objectType.ToString() == new Guid("").ToString();
Thanks for your help. I wrote this case statement to determine the object type:
public static System.Type GetNodeType(int nodeId)
{ System.Type t = null;CMSNode n = new CMSNode(nodeId);
switch (n.nodeObjectType.ToString().ToUpper())
{
case "A2CB7800-F571-4787-9638-BC48539A0EFB":
t = typeof(umbraco.cms.businesslogic.web.DocumentType);
break;
case "C66BA18E-EAF3-4CFF-8A22-41B16D66A972":
t = typeof(umbraco.cms.businesslogic.web.Document);
break;
case "9B5416FB-E72F-45A9-A07B-5A9A2709CE43":
t = typeof(umbraco.cms.businesslogic.member.MemberType);
break;
case "6FBDE604-4178-42CE-A10B-8A2600A2F07D":
t = typeof(umbraco.cms.businesslogic.template.Template);
break;
case "366E63B9-880F-4E13-A61C-98069B029728":
t = typeof(umbraco.cms.businesslogic.member.MemberGroup);
break;
case "9F68DA4F-A3A8-44C2-8226-DCBD125E4840":
t = typeof(umbraco.cms.businesslogic.web.StyleSheet);
break;
case "39EB0F98-B348-42A1-8662-E7EB18487560":
t = typeof(umbraco.cms.businesslogic.member.Member);
break;
case "4EA4382B-2F5A-4C2B-9587-AE9B3CF3602E":
t = typeof(umbraco.cms.businesslogic.media.MediaType);
break;
case "B796F64C-1F99-4FFB-B886-4BF4BC011A9C":
t = typeof(umbraco.cms.businesslogic.media.Media);
break;
case "01BB7FF2-24DC-4C0C-95A2-C24EF72BBAC8":
t = typeof(umbraco.cms.businesslogic.RecycleBin);
break;
default:
break;
}
return t;
}
Retrieve node type from ID
How can i tell what type of object is represented for a specified ID?
Basically given an ID like 1045 i want to be able to determine if this is a Member, MemberGroup, Document, etc...
If nothing else, i'd just like to confirm that the specified ID is the ID of an existing MemberGroup.
Thanks!
Hi Adam,
Best solution I'm aware of for this is to look after the nodeObjectType property on your node object (returns a guid) and compare it with existing guid for the different node types (content, media, stylesheet, ...)
For example:
and compare this with the myNode.nodeObjectType (which is also a guid). If both are equal, then node myNode is of that type.
Hope this helps.
Regards,
/Dirk
How do i know what Guid is for a given type? Is this stored in a table?
Adam,
As that guid is a static field on the type! As in example above, the guid is for the MediaType (such as the File, Folder and Image from the media section)
A node mediaNode is of type Media if
Does that clarify things?
Cheers,
/Dirk
Thanks for your help. I wrote this case statement to determine the object type:
is working on a reply...