public MealWithFiltersForCountSpecification(MealSpecParams mealParams) : base(x => (string.IsNullOrEmpty(mealParams.Search) || x.Name.ToLower().Contains(mealParams.Search)) && (!mealParams.TypeId.HasValue || x.MealTypeId == mealParams.TypeId) ) { }
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; } } }