/// <summary> /// Gets the resource URIs for the specified resource Type using Ed-Fi schema-based and legacy URI conventions. /// </summary> /// <param name="resourceType">The resource Type for which to build the resource URIs.</param> /// <returns>The resource claim URIs.</returns> public string[] GetResourceClaimUris(Type resourceType) { Preconditions.ThrowIfNull(resourceType, nameof(resourceType)); string schemaProperCaseName = resourceType.ParseResourceSchemaProperCaseName(); string resourceName = resourceType.Name; string schemaUriSegment = _schemaNameMapProvider .GetSchemaMapByProperCaseName(schemaProperCaseName) .UriSegment; return(new [] { // Schema-based URI format CreateSchemaBasedResourceClaimUri(schemaUriSegment, resourceName), // Legacy URI format CreateLegacyResourceClaimUri(resourceName), }); }
public FilterContext GetExtensionContext(string properCaseName) { // Supports the NullFilterContext usage if (_filterProvider == null) { return(this); } ISchemaNameMapProvider schemaNameMapProvider = UnfilteredResourceClass.ResourceModel.SchemaNameMapProvider; if (schemaNameMapProvider == null) { return(this); } var logicalName = schemaNameMapProvider.GetSchemaMapByProperCaseName(properCaseName) .LogicalName; var extensionDefinition = Definition.XPathSelectElement( $"Extension[@name='{logicalName}']"); if (extensionDefinition == null) { return(null); } Extension extensionMember; if (!UnfilteredResourceClass.ExtensionByName.TryGetValue(properCaseName, out extensionMember)) { throw new Exception( $"Unable to find extension '{properCaseName}' of resource class '{UnfilteredResourceClass.Name}'."); } return(new FilterContext(_filterProvider, extensionDefinition, extensionMember.ObjectType)); }