Example #1
0
 public MealWithFiltersForCountSpecification(MealSpecParams mealParams)
     : base(x =>
            (string.IsNullOrEmpty(mealParams.Search) || x.Name.ToLower().Contains(mealParams.Search)) &&
            (!mealParams.TypeId.HasValue || x.MealTypeId == mealParams.TypeId)
            )
 {
 }
Example #2
0
        public MealsWithTypesAndMenusSpecification(MealSpecParams mealParams)
            : base(x =>
                   (string.IsNullOrEmpty(mealParams.Search) || x.Name.ToLower().Contains(mealParams.Search)) &&
                   (!mealParams.MenuId.HasValue || x.MenuId == mealParams.MenuId) &&
                   (!mealParams.TypeId.HasValue || x.MealTypeId == mealParams.TypeId) &&
                   (!mealParams.RestaurantId.HasValue || x.RestaurantId == mealParams.RestaurantId)
                   )
        {
            AddInclude(m => m.MealType);
            AddInclude(m => m.Menu);
            AddInclude(m => m.Restaurant);
            AddInclude(m => m.Photos);
            AddInclude(m => m.Ingrediants);
            AddOrderBy(m => m.Name);
            ApplyPaging(mealParams.PageSize * (mealParams.PageIndex - 1), mealParams.PageSize);

            if (!string.IsNullOrEmpty(mealParams.Sort))
            {
                switch (mealParams.Sort)
                {
                case "priceAsc":
                    AddOrderBy(p => p.Price);
                    break;

                case "priceDesc":
                    AddOrderByDescending(p => p.Price);
                    break;

                default:
                    AddOrderBy(n => n.Name);
                    break;
                }
            }
        }