public static IQueryable <Dish> FilterDishes(IQueryable <Dish> dishes, FoodSearchParams searchParams) { if (searchParams.UserId != null && searchParams.UserId != 0) { dishes = dishes.Where(d => d.UserId == searchParams.UserId); } if (searchParams.MinCallories != null) { dishes = dishes.Where(d => d.Callories >= searchParams.MinCallories); } if (searchParams.MaxCallories != null) { dishes = dishes.Where(d => d.Callories <= searchParams.MaxCallories); } if (searchParams.MinFats != null) { dishes = dishes.Where(d => d.Fats >= searchParams.MinFats); } if (searchParams.MaxFats != null) { dishes = dishes.Where(d => d.Fats <= searchParams.MaxFats); } if (searchParams.MinProteins != null) { dishes = dishes.Where(d => d.Proteins >= searchParams.MinProteins); } if (searchParams.MaxProteins != null) { dishes = dishes.Where(d => d.Proteins <= searchParams.MaxProteins); } if (searchParams.MinCarbohydrates != null) { dishes = dishes.Where(d => d.Carbohydrates >= searchParams.MinCarbohydrates); } if (searchParams.MaxCarbohydrates != null) { dishes = dishes.Where(d => d.Carbohydrates <= searchParams.MaxCarbohydrates); } return(dishes); }
public static IQueryable <Dish> SortDishes(IQueryable <Dish> dishes, FoodSearchParams searchParams) { if (searchParams.OrderBy != null) { switch (searchParams.OrderBy) { case FoodOrderBy.Callories: { dishes = searchParams.Ascending ? dishes.OrderBy(d => d.Callories) : dishes.OrderByDescending(d => d.Callories); break; } case FoodOrderBy.Fats: { dishes = searchParams.Ascending ? dishes.OrderBy(d => d.Fats) : dishes.OrderByDescending(d => d.Fats); break; } case FoodOrderBy.Proteins: { dishes = searchParams.Ascending ? dishes.OrderBy(d => d.Proteins) : dishes.OrderByDescending(d => d.Proteins); break; } case FoodOrderBy.Carbohydrates: { dishes = searchParams.Ascending ? dishes.OrderBy(d => d.Carbohydrates) : dishes.OrderByDescending(d => d.Carbohydrates); break; } default: { dishes = searchParams.Ascending ? dishes.OrderBy(d => d.Name) : dishes.OrderByDescending(d => d.Name); break; } } } return(dishes); }
public static IQueryable <Ingredient> FilterIngredients(IQueryable <Ingredient> ingredients, FoodSearchParams searchParams) { if (searchParams.UserId != null && searchParams.UserId != 0) { ingredients = ingredients.Where(d => d.UserId == searchParams.UserId); } if (searchParams.MinCallories != null) { ingredients = ingredients.Where(d => d.Callories >= searchParams.MinCallories); } if (searchParams.MaxCallories != null) { ingredients = ingredients.Where(d => d.Callories <= searchParams.MaxCallories); } if (searchParams.MinFats != null) { ingredients = ingredients.Where(d => d.Fats >= searchParams.MinFats); } if (searchParams.MaxFats != null) { ingredients = ingredients.Where(d => d.Fats <= searchParams.MaxFats); } if (searchParams.MinProteins != null) { ingredients = ingredients.Where(d => d.Proteins >= searchParams.MinProteins); } if (searchParams.MaxProteins != null) { ingredients = ingredients.Where(d => d.Proteins <= searchParams.MaxProteins); } if (searchParams.MinCarbohydrates != null) { ingredients = ingredients.Where(d => d.Carbohydrates >= searchParams.MinCarbohydrates); } if (searchParams.MaxCarbohydrates != null) { ingredients = ingredients.Where(d => d.Carbohydrates <= searchParams.MaxCarbohydrates); } return(ingredients); }
public static IQueryable <Ingredient> SortIngredients(IQueryable <Ingredient> ingredients, FoodSearchParams searchParams) { if (searchParams.OrderBy != null) { switch (searchParams.OrderBy) { case FoodOrderBy.Callories: { ingredients = searchParams.Ascending ? ingredients.OrderBy(d => d.Callories) : ingredients.OrderByDescending(d => d.Callories); break; } case FoodOrderBy.Fats: { ingredients = searchParams.Ascending ? ingredients.OrderBy(d => d.Fats) : ingredients.OrderByDescending(d => d.Fats); break; } case FoodOrderBy.Proteins: { ingredients = searchParams.Ascending ? ingredients.OrderBy(d => d.Proteins) : ingredients.OrderByDescending(d => d.Proteins); break; } case FoodOrderBy.Carbohydrates: { ingredients = searchParams.Ascending ? ingredients.OrderBy(d => d.Carbohydrates) : ingredients.OrderByDescending(d => d.Carbohydrates); break; } default: { ingredients = searchParams.Ascending ? ingredients.OrderBy(d => d.Name) : ingredients.OrderByDescending(d => d.Name); break; } } } return(ingredients); }