Esempio n. 1
0
        public static IOrderedEnumerable <ProductSearchModel> SortProducts(
            IEnumerable <ProductSearchModel> data, ProductSortType productSortType)
        {
            switch (productSortType)
            {
            case ProductSortType.NameDescending:
                return(data.OrderByDescending(item => item.Name));

            case ProductSortType.ProteinAscending:
                return(data.OrderBy(item => item.Protein));

            case ProductSortType.ProteinDescending:
                return(data.OrderByDescending(item => item.Protein));

            case ProductSortType.CarbohydrateAscending:
                return(data.OrderBy(item => item.Carbohydrate));

            case ProductSortType.CarbohydrateDescending:
                return(data.OrderByDescending(item => item.Carbohydrate));

            case ProductSortType.FatAscending:
                return(data.OrderBy(item => item.Fat));

            case ProductSortType.FatDescending:
                return(data.OrderByDescending(item => item.Fat));

            default:
                return(data.OrderBy(item => item.Name));
            }
        }
Esempio n. 2
0
 public static IOrderedEnumerable<ProductListItem> SortBy(this IEnumerable<ProductListItem> items, ProductSortType sortType)
 {
     switch (sortType)
     {
         case ProductSortType.NameDescending:
             return items.OrderByDescending(i => i.Name);
         case ProductSortType.PriceAscending:
             return items.OrderBy(i => i.Price);
         case ProductSortType.PriceDescending:
             return items.OrderByDescending(i => i.Price);
         case ProductSortType.RatingAscending:
             return items.OrderBy(i => i.Rating);
         case ProductSortType.RatingDescending:
             return items.OrderByDescending(i => i.Rating);
         case ProductSortType.ReleaseAscending:
             return items.OrderBy(i => i.ReleaseDate);
         case ProductSortType.ReleaseDescending:
             return items.OrderByDescending(i => i.ReleaseDate);
         default:
             return items.OrderBy(i => i.Name);
     }
 }
Esempio n. 3
0
        public static PagedList<ProductSearchModel> SearchProducts(this IProductManager productManager,
            int page, int pageSize, ProductSortType sortType, ViewModels.Filter filter)
        {
            if (pageSize < 1) 
            { pageSize = 1; }

            ICollection<ProductSearchModel> data =
                Mapper.Map<IEnumerable<Entities.Product>, IEnumerable<ProductSearchModel>>(
                productManager.FindByName(filter.SearchKeyword ?? string.Empty)).ToList();

            var orderedData = ProductHelper.SortProducts(productManager.FilterProducts(data, filter), sortType);

            int pages = (data.Count + pageSize - 1) / pageSize;
            if (page > pages) { page = pages; }
            if (page < 1) { page = 1; }
            
            return new PagedList<ProductSearchModel>(orderedData, page, pageSize);
        }
Esempio n. 4
0
 public static IOrderedEnumerable<ProductSearchModel> SortProducts(
     IEnumerable<ProductSearchModel> data, ProductSortType productSortType)
 {
     switch (productSortType)
     {
         case ProductSortType.NameDescending:
             return data.OrderByDescending(item => item.Name);
         case ProductSortType.ProteinAscending:
             return data.OrderBy(item => item.Protein);
         case ProductSortType.ProteinDescending:
             return data.OrderByDescending(item => item.Protein);
         case ProductSortType.CarbohydrateAscending:
             return data.OrderBy(item => item.Carbohydrate);
         case ProductSortType.CarbohydrateDescending:
             return data.OrderByDescending(item => item.Carbohydrate);
         case ProductSortType.FatAscending:
             return data.OrderBy(item => item.Fat);
         case ProductSortType.FatDescending:
             return data.OrderByDescending(item => item.Fat);
         default:
             return data.OrderBy(item => item.Name);
     }
 }
Esempio n. 5
0
        public static PagedList <ProductSearchModel> SearchProducts(this IProductManager productManager,
                                                                    int page, int pageSize, ProductSortType sortType, ViewModels.Filter filter)
        {
            if (pageSize < 1)
            {
                pageSize = 1;
            }

            ICollection <ProductSearchModel> data =
                Mapper.Map <IEnumerable <Entities.Product>, IEnumerable <ProductSearchModel> >(
                    productManager.FindByName(filter.SearchKeyword ?? string.Empty)).ToList();

            var orderedData = ProductHelper.SortProducts(productManager.FilterProducts(data, filter), sortType);

            int pages = (data.Count + pageSize - 1) / pageSize;

            if (page > pages)
            {
                page = pages;
            }
            if (page < 1)
            {
                page = 1;
            }

            return(new PagedList <ProductSearchModel>(orderedData, page, pageSize));
        }