public List <Recipe> GetSortedRecipes(GetRecipeFilter filter) { var query = _context.Recipes.AsNoTracking(); if (filter.Ingredients.Length != 0) { List <int> recipeIds = GetRecipeIdsThatContainsIngredients(filter.Ingredients, filter.MinimumIngredientsMatch); query = query.Where(r => recipeIds.Contains(r.Id)); } if (filter.CategoryId.HasValue) { query = query.Where(r => r.RecipeCategoryId == filter.CategoryId); } if (!String.IsNullOrEmpty(filter.Name)) { query = query.Where(r => r.Name.Contains(filter.Name)); } if ("rate".Equals(filter.Sort)) { if ("asc".Equals(filter.SortOrder)) { query = query.OrderBy(r => r.AvgRate); } else if ("desc".Equals(filter.SortOrder)) { query = query.OrderByDescending(r => r.AvgRate); } } else if ("date".Equals(filter.Sort)) { if ("asc".Equals(filter.SortOrder)) { query = query.OrderBy(r => r.CreatedOn); } else if ("desc".Equals(filter.SortOrder)) { query = query.OrderByDescending(r => r.CreatedOn); } } if (filter.Amount.HasValue && filter.Page.HasValue) { query = query.Skip(filter.Amount.Value * (filter.Page.Value - 1)); } if (filter.Amount.HasValue) { query = query.Take(filter.Amount.Value); } return(query.ToList()); }
public List <Recipe> GetSortedRecipes(GetRecipeFilter filter) { var query = _context.Recipes.AsNoTracking(); if (filter.CategoryId.HasValue) { query = query.Where(r => r.RecipeCategoryId == filter.CategoryId); } if ("rate".Equals(filter.Sort)) { if ("asc".Equals(filter.SortOrder)) { query = query.OrderBy(r => r.AvgRate); } else if ("desc".Equals(filter.SortOrder)) { query = query.OrderByDescending(r => r.AvgRate); } } else if ("date".Equals(filter.Sort)) { if ("asc".Equals(filter.SortOrder)) { query = query.OrderBy(r => r.CreatedOn); } else if ("desc".Equals(filter.SortOrder)) { query = query.OrderByDescending(r => r.CreatedOn); } } if (filter.Amount.HasValue && filter.Page.HasValue) { query = query.Skip(filter.Amount.Value * (filter.Page.Value - 1)); } if (filter.Amount.HasValue) { query = query.Take(filter.Amount.Value); } return(query.ToList()); }
public List <Recipe> GetSortedRecipes(GetRecipeFilter filter) { return(_recipesRepository.GetSortedRecipes(filter)); }
public List <Recipe> GetSortedRecipes([FromBody] GetRecipeFilter filter) { return(_recipesService.GetSortedRecipes(filter)); }