GetDefinitionNamePropertyInfo() public static method

public static GetDefinitionNamePropertyInfo ( Type metaDataType ) : PropertyInfo
metaDataType System.Type
return System.Reflection.PropertyInfo
        /// <exclude />
        public static IEnumerable <IData> GetMetaData(string definitionName, Type metaDataType)
        {
            Verify.ArgumentNotNull(definitionName, nameof(definitionName));
            Verify.ArgumentNotNull(metaDataType, nameof(metaDataType));

            var parameterExpression = Expression.Parameter(metaDataType);

            var lambdaExpression = Expression.Lambda(
                Expression.Equal(
                    Expression.Property(
                        parameterExpression,
                        PageMetaDataFacade.GetDefinitionNamePropertyInfo(metaDataType)
                        ),
                    Expression.Constant(
                        definitionName,
                        typeof(string)
                        )
                    ),
                parameterExpression
                );

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

            IEnumerable <IData> datas = ExpressionHelper.GetCastedObjects <IData>(metaDataType, whereExpression);

            return(datas);
        }
Beispiel #2
0
        /// <exclude />
        public static IEnumerable <IData> GetMetaData(string definitionName, Type metaDataType)
        {
            //TODO: Consider caching here
            ParameterExpression parameterExpression = Expression.Parameter(metaDataType);

            LambdaExpression lambdaExpression = Expression.Lambda(
                Expression.Equal(
                    Expression.Property(
                        parameterExpression,
                        PageMetaDataFacade.GetDefinitionNamePropertyInfo(metaDataType)
                        ),
                    Expression.Constant(
                        definitionName,
                        typeof(string)
                        )
                    ),
                parameterExpression
                );

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

            IEnumerable <IData> datas = ExpressionHelper.GetCastedObjects <IData>(metaDataType, whereExpression);

            return(datas);
        }
        /// <exclude />
        public static IData GetMetaData(Guid pageId, Guid pageVersionId, string definitionName, Type metaDataType)
        {
            Verify.ArgumentNotNull(definitionName, nameof(definitionName));
            Verify.ArgumentNotNull(metaDataType, nameof(metaDataType));

            //TODO: Consider caching here
            var parameterExpression = Expression.Parameter(metaDataType);

            var lambdaExpression = Expression.Lambda(
                Expression.And(
                    Expression.And(
                        Expression.Equal(
                            Expression.Property(
                                parameterExpression,
                                PageMetaDataFacade.GetDefinitionNamePropertyInfo(metaDataType)
                                ),
                            Expression.Constant(
                                definitionName,
                                typeof(string)
                                )
                            ),
                        Expression.Equal(
                            Expression.Property(
                                parameterExpression,
                                GetDefinitionPageReferencePropertyInfo(metaDataType)
                                ),
                            Expression.Constant(
                                pageId,
                                typeof(Guid)
                                )
                            )
                        ),
                    Expression.Equal(
                        Expression.Property(
                            parameterExpression,
                            GetDefinitionPageReferencePropertyVersionInfo(metaDataType)
                            ),
                        Expression.Constant(
                            pageVersionId,
                            typeof(Guid)
                            )
                        )
                    ),
                parameterExpression
                );

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

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

            return(dataset.SingleOrDefaultOrException("There're multiple meta data on a page. Page '{0}', definition name '{1}', meta type '{2}'",
                                                      pageId, definitionName, metaDataType.FullName));
        }