public async Task <PagedList <Category> > GetCategories(RequestModels.UserFilter filter)
        {
            var categories = _dbContext.Categories.OrderBy(c => c.Title).AsQueryable();

            if (!string.IsNullOrEmpty(filter.SearchText))
            {
                categories = categories.Where(c => c.Title.ToLower().Contains(filter.SearchText.ToLower()));
            }

            return(await PagedList <Category> .CreateAsync(categories, filter.PageIndex, filter.PageSize));
        }
Example #2
0
        public async Task <IActionResult> GetCategories([FromQuery] RequstModels.UserFilter categoryFilter)
        {
            try
            {
                var pagedCagegoryList = await _categoryRepository.GetCategories(categoryFilter);

                if (categoryFilter.IsIdValue)
                {
                    return(Ok(new {
                        Categories = GetDropdownCategories(pagedCagegoryList)
                    }));
                }
                else
                {
                    var vCategories = new List <ViewModels.Category>();
                    foreach (var sCategory in pagedCagegoryList)
                    {
                        vCategories.Add(new ViewModels.Category
                        {
                            Id          = sCategory.Id.ToString(),
                            Title       = sCategory.Title,
                            Description = sCategory.Description
                        });
                    }

                    return(Ok(new
                    {
                        Pagination = new ViewModels.Pagination(pagedCagegoryList.PageIndex, pagedCagegoryList.PageSize, pagedCagegoryList.TotalCount, pagedCagegoryList.TotalPages),
                        Categories = vCategories
                    }));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }