Example #1
0
        private ICollection <T> QueryToEntityEnum <T>(Query query) where T : Entity
        {
            var assetStateSelection = new AttributeSelection();
            IAttributeDefinition assetStateDef;

            if (query.AssetType.TryGetAttributeDefinition("AssetState", out assetStateDef))
            {
                assetStateSelection.Add(assetStateDef);
            }

            var suggestedSelection = GetSuggestedSelection(query.AssetType, typeof(T));
            var flattenedSelection = FlattenSelection(query.AssetType, query.Selection);

            query.Selection = AttributeSelection.Merge(assetStateSelection, suggestedSelection, flattenedSelection);

            return(AssetEnumToEntityEnum <T>(Services.Retrieve(query).Assets));
        }