public static DSResource CreateResourceWithKeyAndReferenceSetCmdlets(ResourceType resourceType, Dictionary <string, object> keyProperties, EntityMetadata entityMetadata) { DSResource dSResource = ResourceTypeExtensions.CreateKeyOnlyResource(resourceType, keyProperties); if (dSResource != null) { PSEntityMetadata pSEntityMetadatum = entityMetadata as PSEntityMetadata; ReadOnlyCollection <ResourceProperty> properties = resourceType.Properties; foreach (ResourceProperty resourceProperty in properties.Where <ResourceProperty>((ResourceProperty it) => (it.Kind & ResourcePropertyKind.ResourceSetReference) == ResourcePropertyKind.ResourceSetReference)) { PSEntityMetadata.ReferenceSetCmdlets referenceSetCmdlet = null; if (!pSEntityMetadatum.CmdletsForReferenceSets.TryGetValue(resourceProperty.Name, out referenceSetCmdlet) || !referenceSetCmdlet.Cmdlets.ContainsKey(CommandType.GetReference)) { continue; } if (referenceSetCmdlet.GetRefHidden) { dSResource.SetValue(resourceProperty.Name, null); } else { PSReferencedResourceSet pSReferencedResourceSet = new PSReferencedResourceSet(resourceProperty, resourceType); dSResource.SetValue(resourceProperty.Name, pSReferencedResourceSet); } } return(dSResource); } else { return(null); } }
public static bool IsNavPropertyHasGetReferenceCmdlet(this ResourceProperty resourceProperty, EntityMetadata entityMetadata) { if (resourceProperty.IsReferenceSetProperty()) { PSEntityMetadata pSEntityMetadatum = entityMetadata as PSEntityMetadata; PSEntityMetadata.ReferenceSetCmdlets referenceSetCmdlet = null; if (!pSEntityMetadatum.CmdletsForReferenceSets.TryGetValue(resourceProperty.Name, out referenceSetCmdlet) || !referenceSetCmdlet.Cmdlets.ContainsKey(CommandType.GetReference)) { return(false); } else { return(true); } } else { return(false); } }