示例#1
0
        public static IList <Category> GetCategories(int startIndex,
                                                     int pageSize,
                                                     ReadOnlyCollection <SortedColumn> sortedColumns,
                                                     out int totalRecordCount,
                                                     out int searchRecordCount,
                                                     string searchString)
        {
            var categories = GetAllCategories();

            totalRecordCount = categories.Count;

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                categories = categories.Where(c => c.Name.ToLower().Contains(searchString.ToLower())).ToList();
            }

            searchRecordCount = categories.Count;

            IOrderedEnumerable <Category> sortedCategories = null;

            foreach (var sortedColumn in sortedColumns)
            {
                switch (sortedColumn.PropertyName)
                {
                case "Name":
                    sortedCategories = sortedCategories == null?categories.CustomSort(sortedColumn.Direction, cust => cust.Name)
                                           : sortedCategories.CustomSort(sortedColumn.Direction, cust => cust.Name);

                    break;
                }
            }

            return(sortedCategories.Skip(startIndex).Take(pageSize).ToList());
        }