private bool IsSingleItemRequest( XElement compositeDefinition, IResourceModel resourceModel, IDictionary <string, object> queryStringParameters) { var currentElt = compositeDefinition.Element("BaseResource"); if (currentElt == null) { throw new Exception("Unable to find the main 'Resource' element of the composite definition."); } string logicalSchema = currentElt.Attributes() .SingleOrDefault(x => x.Name.ToString().EqualsIgnoreCase(CompositeDefinitionHelper.LogicalSchema)) ?.Value ?? EdFiConventions.LogicalName; var physicalName = resourceModel.GetPhysicalNameForLogicalName(logicalSchema); var currentModel = resourceModel.GetResourceByFullName(new FullName(physicalName, currentElt.AttributeValue(CompositeDefinitionHelper.Name))); return(currentModel.IsSingleItemRequest(queryStringParameters.ToList())); }
public TBuildResult Process( XElement compositeDefinition, IResourceModel resourceModel, TBuilderContext builderContext) { var currentElt = compositeDefinition.Element(CompositeDefinitionHelper.BaseResource); if (currentElt == null) { throw new Exception("Unable to find the main 'Resource' element of the composite definition."); } var resourceLogicalName = currentElt.AttributeValue(CompositeDefinitionHelper.LogicalSchema) ?? EdFiConventions.LogicalName; var resourcePhysicalName = resourceModel.SchemaNameMapProvider .GetSchemaMapByLogicalName(resourceLogicalName) .PhysicalName; // Composites does not support extensions var currentModel = resourceModel.GetResourceByFullName( new FullName(resourcePhysicalName, currentElt.AttributeValue(CompositeDefinitionHelper.Name))); var processorContext = new CompositeDefinitionProcessorContext( compositeDefinition, resourceModel, currentElt, currentModel, null, null, null, 0, null); return(ProcessDefinition(default(TBuildResult), builderContext, processorContext)); }