public async Task <IEnumerable <Recipe> > GetListAsync(int userId, Entities.ResourceParameters.Recipes resourceParameters) { ParameterChecks.CheckResourceParameters(resourceParameters); var collection = _context.Recipes.AsQueryable <Recipe>(); var userRecipescollection = _context.UsersRecipes.AsQueryable <UsersRecipe>().Where(ur => ur.UserId == userId); collection = collection.Include(r => r.Ingredients) .ThenInclude(i => i.Measurement) .Include(r => r.Ingredients) .ThenInclude(i => i.Ingredient) .Include(r => r.RecipeSteps) .Join(userRecipescollection, r => r.Id, ur => ur.RecipeId, (r, ur) => r); if (!string.IsNullOrWhiteSpace(resourceParameters.SearchQuery)) { collection = collection.Where(i => i.Name.Contains(resourceParameters.SearchQuery.Trim())); } if (!string.IsNullOrWhiteSpace(resourceParameters.OrderBy)) { collection = resourceParameters.SortAsc ? collection.OrderBy(i => i.Name) : collection.OrderByDescending(i => i.Name); } return(await collection.Skip((resourceParameters.PageNumber - 1) *resourceParameters.PageSize).Take(resourceParameters.PageSize).ToListAsync()); }
public async Task <IEnumerable <ScheduledRecipe> > GetListAsync(int userId, Entities.ResourceParameters.ScheduledRecipes resourceParameters) { ParameterChecks.CheckResourceParameters(resourceParameters); var collection = _context.ScheduledRecipes.AsQueryable <ScheduledRecipe>() .Include(sr => sr.Recipe) .Where(sr => sr.UserId == userId) .Where(sr => sr.ScheduledDate > resourceParameters.StartDate.Date && sr.ScheduledDate < resourceParameters.EndDate.Date); return(await collection.ToListAsync()); }
public async Task <IEnumerable <Recipe> > GetListAsync(ResourceParameters.Recipes resourceParameters) { ParameterChecks.CheckResourceParameters(resourceParameters); var collection = _context.Recipes.AsQueryable <Recipe>(); if (!string.IsNullOrWhiteSpace(resourceParameters.SearchQuery)) { collection = collection.Where(i => i.Name.Contains(resourceParameters.SearchQuery.Trim())); } if (!string.IsNullOrWhiteSpace(resourceParameters.OrderBy)) { collection = resourceParameters.SortAsc ? collection.OrderBy(i => i.Name) : collection.OrderByDescending(i => i.Name); } return(await collection.Skip((resourceParameters.PageNumber - 1) *resourceParameters.PageSize).Take(resourceParameters.PageSize).ToListAsync()); }