@@ -35,21 +35,26 @@ internal static class ResourceExtensions
35
35
/// <param name="objectFormat">The <see cref="ResourceObjectFormat"/></param>
36
36
internal static PSObject ToPsObject ( this Resource < JToken > resource , ResourceObjectFormat objectFormat )
37
37
{
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 ) ;
40
45
41
46
var objectDefinition = new Dictionary < string , object >
42
47
{
43
48
{ "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 ) } ,
46
51
{ "ResourceType" , resourceType } ,
47
- { "ExtensionResourceName" , ResourceIdUtility . GetExtensionResourceName ( resource . Id ) } ,
52
+ { "ExtensionResourceName" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetExtensionResourceName ( resource . Id ) } ,
48
53
{ "ExtensionResourceType" , extensionResourceType } ,
49
54
{ "Kind" , resource . Kind } ,
50
- { "ResourceGroupName" , ResourceIdUtility . GetResourceGroupName ( resource . Id ) } ,
55
+ { "ResourceGroupName" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetResourceGroupName ( resource . Id ) } ,
51
56
{ "Location" , resource . Location } ,
52
- { "SubscriptionId" , ResourceIdUtility . GetSubscriptionId ( resource . Id ) } ,
57
+ { "SubscriptionId" , string . IsNullOrEmpty ( resource . Id ) ? null : ResourceIdUtility . GetSubscriptionId ( resource . Id ) } ,
53
58
{ "Tags" , TagsHelper . GetTagsHashtables ( resource . Tags ) } ,
54
59
{ "Plan" , resource . Plan . ToJToken ( ) . ToPsObject ( objectFormat ) } ,
55
60
{ "Properties" , ResourceExtensions . GetProperties ( resource , objectFormat ) } ,
@@ -58,8 +63,13 @@ internal static PSObject ToPsObject(this Resource<JToken> resource, ResourceObje
58
63
{ "ETag" , resource . ETag } ,
59
64
} ;
60
65
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 ,
63
73
objectDefinition . Where ( kvp => kvp . Value != null ) . SelectManyArray ( kvp => new [ ] { kvp . Key , kvp . Value } ) ) ;
64
74
65
75
psObject . TypeNames . Add ( Constants . MicrosoftAzureResource ) ;
0 commit comments