Пример #1
0
        public GetReciepesResponse GetRecipes(GetRecipesRequest request)
        {
            var response = new GetReciepesResponse();

            response.list = _recipeRepository
                            .GetAll(request.filter, request.orderBy, "Ingredients", "Ingredients.Ingredient")
                            .ToRecipeViewModel();

            return(response);
        }
Пример #2
0
        public async Task <IEnumerable <RecipeDto> > Handle(GetRecipesRequest request, CancellationToken cancellationToken)
        {
            var recipes = await _context.RecipeVariations
                          .Include(rv => rv.Author)
                          .Include(rv => rv.Ingredients)
                          .Include(rv => rv.Recipe)
                          .OrderByDescending(rv => rv.CreatedAt)
                          .Take(100)
                          .ToArrayAsync()
                          .ConfigureAwait(false);

            return(_mapper.Map <IEnumerable <RecipeDto> >(recipes));
        }
Пример #3
0
        public async Task <PaginatedList <RecipeDto> > GetAll(GetRecipesRequest request)
        {
            var paginatedRecipes = await _context.Recipes
                                   .Include(x => x.RecipeIngredients)
                                   .ThenInclude(x => x.Ingredient)
                                   .Include(x => x.Area)
                                   .Include(x => x.Category)
                                   .ProjectTo <RecipeDto>(_mapper.ConfigurationProvider)
                                   .Where(x =>
                                          string.IsNullOrEmpty(request.SearchPhrase) ||
                                          x.Instructions.ToLower().Contains(request.SearchPhrase.ToLower()) ||
                                          x.Name.ToLower().Contains(request.SearchPhrase.ToLower()) ||
                                          x.Category.ToLower().Contains(request.SearchPhrase.ToLower()))
                                   .PaginatedListAsync(request.PageNumber, request.PageSize, request.SortBy, request.SortDirection);

            return(paginatedRecipes);
        }
Пример #4
0
        public async Task <IActionResult> GetAll([FromQuery] GetRecipesRequest request)
        {
            var vm = await _recipesService.GetAll(request);

            return(Ok(vm));
        }