Exemplo n.º 1
0
        /// <summary>
        /// It is used to sort root/child only case
        /// </summary>
        /// <param name="rootSF"></param>
        private void TwoLevelSort(SortingField rootSF)
        {
            logger.Info("Sorting using xpath {0}", rootSF.XPath);

            IOrderedEnumerable <XElement> orderNodeTree = null;

            orderNodeTree = rootSF.Process(workflowFile.RootNode);

            var lastElement = ApplyOrder(workflowFile.RootNode, orderNodeTree);

            for (int i = 1; i < SortingFields.Count; i++)
            {
                var sf = SortingFields[i];
                //logger.Info("Sorting using SF {0}", sf.XPath);

                orderNodeTree = sf.Process(workflowFile.RootNode);
                lastElement   = ApplyOrderAfter(lastElement, orderNodeTree);
            }

            logger.Info("2-level sorting operation completed");
        }