FundraisingMenu.SearchServices.FundraisingMenuSearchServices.OrderProjectRecords C# (CSharp) Method

OrderProjectRecords() private method

Order menu records. This function always orders first by package.
private OrderProjectRecords ( List allProjects, DataTableParameters parameters ) : List
allProjects List
parameters FundraisingMenu.Integration.DataTableParameters
return List
        private List<FundraisingMenuResult> OrderProjectRecords(List<FundraisingMenuResult> allProjects, DataTableParameters parameters)
        {
            IOrderedEnumerable<FundraisingMenuResult> orderedData = allProjects
                .OrderBy(r => r.ProjectPackage[0].Priority)
                .ThenBy(r => r.ProjectPackage[0].PackageName);

            foreach (var orderByClause in parameters.order)
            {
                var evalFunc = EvaluateOrderBy(orderByClause.column, parameters.columns);
                if (evalFunc != null)
                {
                    bool asc = orderByClause.dir == OrderingData.OrderingDirection.asc;
                    orderedData = asc ?
                        orderedData.ThenBy(evalFunc) :
                        orderedData.ThenByDescending(evalFunc);
                }
            }
            return orderedData.ToList();
        }