Esempio n. 1
0
        protected virtual void OnProcessSortings(IParsedLambda sortingsLambda, SqlExpression expression)
        {
            if (sortingsLambda == null || sortingsLambda.Nodes.Length == 0)
            {
                return;
            }

            foreach (var sortingNode in sortingsLambda.Nodes.OfType <SortingNode>())
            {
                if (expression.ContainsSortingMemberFor(sortingNode.MemberPath))
                {
                    continue;
                }

                var memberIndex = expression.GetExistingOrNewMemberIndexFor(sortingNode.MemberPath);
                var valueField  = IndexStorageSchema.Fields.Value;
                if (sortingNode.DataTypeCode == DataTypeCode.Guid || sortingNode.DataTypeCode == DataTypeCode.Bool)
                {
                    valueField = IndexStorageSchema.Fields.StringValue;
                }

                expression.AddSortingMember(new SqlSortingMember(
                                                memberIndex,
                                                sortingNode.MemberPath,
                                                string.Concat("mem", memberIndex),
                                                valueField.Name,
                                                sortingNode.Direction.ToString(),
                                                sortingNode.DataType,
                                                sortingNode.DataTypeCode));
            }
        }
        protected virtual void OnProcessSortings(IParsedLambda sortingsLambda, SqlExpression expression)
        {
            if (sortingsLambda == null || sortingsLambda.Nodes.Length == 0)
                return;

            foreach (var sortingNode in sortingsLambda.Nodes.OfType<SortingNode>())
            {
                var valueField = IndexStorageSchema.Fields.Value;

                if(expression.ContainsSortingMemberFor(sortingNode.MemberPath))
                    continue;

                var memberIndex = expression.GetExistingOrNewMemberIndexFor(sortingNode.MemberPath);

                expression.AddSortingMember(new SqlSortingMember(
                    memberIndex,
                    sortingNode.MemberPath,
                    string.Concat("mem", memberIndex),
                    valueField.Name,
                    sortingNode.Direction.ToString(), 
					sortingNode.DataType,
                    sortingNode.DataTypeCode));
            }
        }