Beispiel #1
0
        public static IOrderedEnumerable <RecipeSearchModel> SortRecipes(
            IEnumerable <RecipeSearchModel> data, RecipeSortType sortType)
        {
            switch (sortType)
            {
            case RecipeSortType.NameAscending:
                return(data.OrderBy(item => item.Name));

            case RecipeSortType.NameDescending:
                return(data.OrderByDescending(item => item.Name));

            case RecipeSortType.RatingAscending:
                return(data.OrderBy(item => item.Rating));

            case RecipeSortType.RatingDescending:
                return(data.OrderByDescending(item => item.Rating));

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

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

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

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

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

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

            case RecipeSortType.CommentsAscending:
                return(data.OrderBy(item => item.Comments));

            case RecipeSortType.CommentsDescending:
                return(data.OrderByDescending(item => item.Comments));

            default:
                return(data.OrderBy(item => item.Name));
            }
        }
Beispiel #2
0
        public static PagedList <RecipeSearchModel> SearchRecipes(this IRecipeManager recipeManager,
                                                                  int page, int pageSize, RecipeSortType sortType, ViewModels.Filter filter)
        {
            if (pageSize < 1)
            {
                pageSize = 1;
            }

            ICollection <RecipeSearchModel> data =
                Mapper.Map <IEnumerable <Entities.Recipe>, IEnumerable <RecipeSearchModel> >(
                    recipeManager.FindByName(filter.SearchKeyword ?? string.Empty)).ToList();

            var orderedData = RecipeHelper.SortRecipes(recipeManager.FilterProducts(data, filter), sortType);

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

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

            return(new PagedList <RecipeSearchModel>(orderedData, page, pageSize));
        }
Beispiel #3
0
        public static PagedList<RecipeSearchModel> SearchRecipes(this IRecipeManager recipeManager,
            int page, int pageSize, RecipeSortType sortType, ViewModels.Filter filter)
        {
            if (pageSize < 1) 
            { pageSize = 1; }

            ICollection<RecipeSearchModel> data =
                Mapper.Map<IEnumerable<Entities.Recipe>, IEnumerable<RecipeSearchModel>>(
                recipeManager.FindByName(filter.SearchKeyword ?? string.Empty)).ToList();

            var orderedData = RecipeHelper.SortRecipes(recipeManager.FilterProducts(data, filter), sortType);

            int pages = (data.Count + pageSize - 1) / pageSize;
            if (page > pages) { page = pages; }
            if (page < 1) { page = 1; }

            return new PagedList<RecipeSearchModel>(orderedData, page, pageSize);
        }
Beispiel #4
0
 public static IOrderedEnumerable<RecipeSearchModel> SortRecipes(
     IEnumerable<RecipeSearchModel> data, RecipeSortType sortType)
 {
     switch (sortType)
     {
         case RecipeSortType.NameAscending: 
             return data.OrderBy(item => item.Name);
         case RecipeSortType.NameDescending:
             return data.OrderByDescending(item => item.Name);
         case RecipeSortType.RatingAscending:
             return data.OrderBy(item => item.Rating);
         case RecipeSortType.RatingDescending:
             return data.OrderByDescending(item => item.Rating);
         case RecipeSortType.ProteinAscending:
             return data.OrderBy(item => item.Protein);
         case RecipeSortType.ProteinDescending:
             return data.OrderByDescending(item => item.Protein);
         case RecipeSortType.FatAscending:
             return data.OrderBy(item => item.Fat);
         case RecipeSortType.FatDescending:
             return data.OrderByDescending(item => item.Fat);
         case RecipeSortType.CarbohydrateAscending:
             return data.OrderBy(item => item.Carbohydrate);
         case RecipeSortType.CarbohydrateDescending:
             return data.OrderByDescending(item => item.Carbohydrate);
         case RecipeSortType.CommentsAscending:
             return data.OrderBy(item => item.Comments);
         case RecipeSortType.CommentsDescending:
             return data.OrderByDescending(item => item.Comments);
         default:
             return data.OrderBy(item => item.Name);
     }
 }