GetDefinitionPageReferencePropertyInfo() public static méthode

public static GetDefinitionPageReferencePropertyInfo ( Type metaDataType ) : PropertyInfo
metaDataType System.Type
Résultat System.Reflection.PropertyInfo
Exemple #1
0
        /// <summary>
        /// Returns all folder data given the page id and folder data type
        /// </summary>
        /// <param name="pageId"></param>
        /// <param name="pageFolderType"></param>
        /// <returns></returns>
        public static IEnumerable <IData> GetFolderData(Guid pageId, Type pageFolderType)
        {
            //TODO: Consider caching here
            ParameterExpression parameterExpression = Expression.Parameter(pageFolderType);

            LambdaExpression lambdaExpression = Expression.Lambda(
                Expression.Equal(
                    Expression.Property(
                        parameterExpression,
                        PageMetaDataFacade.GetDefinitionPageReferencePropertyInfo(pageFolderType)
                        ),
                    Expression.Constant(
                        pageId,
                        typeof(Guid)
                        )
                    ),
                parameterExpression
                );

            Expression whereExpression = ExpressionCreator.Where(DataFacade.GetData(pageFolderType).Expression, lambdaExpression);

            IEnumerable <IData> dataset = ExpressionHelper.GetCastedObjects <IData>(pageFolderType, whereExpression);

            return(dataset);
        }
Exemple #2
0
        /// <exclude />
        public static bool HasFolderData(this IPage page, Type pageFolderType)
        {
            Verify.ArgumentNotNull(page, "page");

            //TODO: Consider caching here
            ParameterExpression parameterExpression = Expression.Parameter(pageFolderType);

            LambdaExpression lambdaExpression = Expression.Lambda(
                Expression.Equal(
                    Expression.Property(
                        parameterExpression,
                        PageMetaDataFacade.GetDefinitionPageReferencePropertyInfo(pageFolderType)
                        ),
                    Expression.Constant(
                        page.Id,
                        typeof(Guid)
                        )
                    ),
                parameterExpression
                );

            Expression whereExpression = ExpressionCreator.Where(DataFacade.GetData(pageFolderType).Expression, lambdaExpression);

            //TODO: Possible optimization here
            return(DataFacade.GetData(pageFolderType).Provider.CreateQuery(whereExpression).ToEnumerableOfObjects().Any());
        }
        /// <exclude />
        public static Guid GetMetaDataReferencedPageId(IData metaData)
        {
            PropertyInfo propertyInfo = PageMetaDataFacade.GetDefinitionPageReferencePropertyInfo(metaData.DataSourceId.InterfaceType);

            Guid pageId = (Guid)propertyInfo.GetValue(metaData, null);

            return(pageId);
        }