Esempio n. 1
0
        public async Task <IActionResult> SearchAsync([FromBody] RecipeSearchRequest request)
        {
            var query = default(IQueryable <Recipe>);

            switch (request.Type)
            {
            case SearchMode.RecipeCategory:
                query = Repository.Recipe.GetRecipeByCategoryId(int.Parse(request.Text));
                break;

            case SearchMode.RecipeName:
                query = Repository.Recipe.GetRecipeByName(request.Text);
                break;

            case SearchMode.RecipeIngredient:
                query = Repository.Recipe.GetRecipeByIngredient(request.Text);
                break;

            case SearchMode.RecipeAuthor:
                query = Repository.Recipe.GetRecipeByAuthor(request.Text);
                break;

            case SearchMode.LatestRecipes:
                query = Repository.Recipe.GetLatestRecipes().Take(request.TakeCount);
                break;
            }

            var source = await query
                         .Select(s => Mapper.Map <RecipeResponse>(s))
                         .ToListAsync()
                         .ConfigureAwait(false);

            return(Ok(PagedData <RecipeResponse> .Create(source, request.PageNumber, request.PageSize)));
        }
Esempio n. 2
0
        public static async Task <PagedData <User> > SearchByUsername(this UserManager <User> userManager, string query,
                                                                      PaginationOptions options)
        {
            var queryable = userManager.Users.Where(u =>
                                                    u.UserName.Contains(query) || u.FirstName.Contains(query) || u.LastName.Contains(query));
            var data = new PagedData <User>();

            return(await data.Create(queryable, options));
        }
Esempio n. 3
0
        public Task <PagedData <Image> > Search(string query, PaginationOptions options)
        {
            var queryable = _context.Images
                            .AsQueryable()
                            .Where(i => i.ShortDescription.Contains(query) || i.Description.Contains(query))
                            .OrderByDescending(i => i.Published);

            var result = new PagedData <Image>();

            return(result.Create(queryable, options));
        }
Esempio n. 4
0
        public Task <PagedData <Image> > GetImagesByUser(string userId, PaginationOptions options)
        {
            var queryable = _context.Images
                            .AsQueryable()
                            .Where(i => i.User.Id == userId)
                            .OrderByDescending(i => i.Published);

            var result = new PagedData <Image>();

            return(result.Create(queryable, options));
        }