Exemplo n.º 1
0
        /// <summary>
        /// Called by multi level grand_parent/root_node for first level ordering
        /// </summary>
        /// <param name="NodeTree"></param>
        /// <param name="sf"></param>
        /// <returns></returns>
        public IOrderedEnumerable <XElement> Process(IEnumerable <XElement> NodeTree, SortingField sf)
        {
            IOrderedEnumerable <XElement> orderNodeTree;

            string elementName = sf.GetLeafName();

            if (sf.SortingType == SortingType.Ascending)
            {
                orderNodeTree = NodeTree.OrderBy(m => m.Element(elementName).Value, sf.GetComparer());
            }
            else
            {
                orderNodeTree = NodeTree.OrderByDescending(m => m.Element(elementName).Value, sf.GetComparer());
            }

            return(orderNodeTree);
        }