Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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());
        }