@@ -35,21 +35,26 @@ internal static class ResourceExtensions
3535 /// <param name="objectFormat">The <see cref="ResourceObjectFormat"/></param>
3636 internal static PSObject ToPsObject ( this Resource < JToken > resource , ResourceObjectFormat objectFormat )
3737 {
38- var resourceType = ResourceIdUtility . GetResourceType ( resource . Id ) ;
39- var extensionResourceType = ResourceIdUtility . GetExtensionResourceType ( resource . Id ) ;
38+ var resourceType = string . IsNullOrEmpty ( resource . Id )
39+ ? null
40+ : ResourceIdUtility . GetResourceType ( resource . Id ) ;
41+
42+ var extensionResourceType = string . IsNullOrEmpty ( resource . Id )
43+ ? null
44+ : ResourceIdUtility . GetExtensionResourceType ( resource . Id ) ;
4045
4146 var objectDefinition = new Dictionary < string , object >
4247 {
4348 { "Name" , resource . Name } ,
44- { "ResourceId" , resource . Id } ,
45- { "ResourceName" , ResourceIdUtility . GetResourceName ( resource . Id ) } ,
49+ { "ResourceId" , string . IsNullOrEmpty ( resource . Id ) ? null : resource . Id } ,
50+ { "ResourceName" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetResourceName ( resource . Id ) } ,
4651 { "ResourceType" , resourceType } ,
47- { "ExtensionResourceName" , ResourceIdUtility . GetExtensionResourceName ( resource . Id ) } ,
52+ { "ExtensionResourceName" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetExtensionResourceName ( resource . Id ) } ,
4853 { "ExtensionResourceType" , extensionResourceType } ,
4954 { "Kind" , resource . Kind } ,
50- { "ResourceGroupName" , ResourceIdUtility . GetResourceGroupName ( resource . Id ) } ,
55+ { "ResourceGroupName" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetResourceGroupName ( resource . Id ) } ,
5156 { "Location" , resource . Location } ,
52- { "SubscriptionId" , ResourceIdUtility . GetSubscriptionId ( resource . Id ) } ,
57+ { "SubscriptionId" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetSubscriptionId ( resource . Id ) } ,
5358 { "Tags" , TagsHelper . GetTagsHashtables ( resource . Tags ) } ,
5459 { "Plan" , resource . Plan . ToJToken ( ) . ToPsObject ( objectFormat ) } ,
5560 { "Properties" , ResourceExtensions . GetProperties ( resource , objectFormat ) } ,
@@ -58,8 +63,13 @@ internal static PSObject ToPsObject(this Resource<JToken> resource, ResourceObje
5863 { "ETag" , resource . ETag } ,
5964 } ;
6065
61- var psObject = PowerShellUtilities . ConstructPSObject (
62- ( resourceType + extensionResourceType ) . Replace ( '/' , '.' ) ,
66+ var resourceTypeName = resourceType == null && extensionResourceType == null
67+ ? null
68+ : ( resourceType + extensionResourceType ) . Replace ( '/' , '.' ) ;
69+
70+ var psObject =
71+ PowerShellUtilities . ConstructPSObject (
72+ resourceTypeName ,
6373 objectDefinition . Where ( kvp => kvp . Value != null ) . SelectManyArray ( kvp => new [ ] { kvp . Key , kvp . Value } ) ) ;
6474
6575 psObject . TypeNames . Add ( Constants . MicrosoftAzureResource ) ;
0 commit comments