示例#1
0
        public async Task <IActionResult> Index(string keyword, Status?status, int pageIndex = 1, int pageSize = 5)
        {
            var request = new GetManageCategoryPagingRequest()
            {
                Keyword    = keyword,
                PageIndex  = pageIndex,
                PageSize   = pageSize,
                LanguageId = GetLanguageId(),
                Status     = status
            };

            ViewBag.Statuss = Enum.GetValues(typeof(Status)).Cast <Status>()
                              .Select(x => new SelectListItem()
            {
                Text     = x.ToString(),
                Value    = ((int)x).ToString(),
                Selected = status.HasValue && status.ToString() == x.ToString()
            }).ToList();
            ViewBag.Keyword = keyword;

            if (TempData["Result"] != null)
            {
                ViewBag.SuccessMsg = TempData["Result"];
            }
            var data = await _categoryApiCilent.GetCategoryPaging(request);

            return(View(data.ResultObj));
        }
示例#2
0
        public async Task <ApiResult <PageResult <CategoryViewModel> > > GetAllPaging(GetManageCategoryPagingRequest request)
        {
            //1.filter
            var query = from c in _context.Categories
                        join ct in _context.CategoryTranslations on c.Id equals ct.CategoryId
                        select new { c, ct };

            //2.filer by languageid
            query = query.Where(x => x.ct.LanguageId == request.LanguageId);

            //filter by status
            if (request.Status != null)
            {
                query = query.Where(x => x.c.Status == request.Status);
            }
            //3/filter by keyword
            if (!String.IsNullOrWhiteSpace(request.Keyword))
            {
                query = query.Where(x => x.ct.Name.Contains(request.Keyword) ||
                                    x.ct.SeoAlias.Contains(request.Keyword) ||
                                    x.ct.SeoDescription.Contains(request.Keyword) ||
                                    x.ct.SeoTitle.Contains(request.Keyword) ||
                                    x.ct.CategoryId.ToString().Contains(request.Keyword));
            }

            //4. paging
            query = query.Skip((request.PageIndex - 1) * request.PageSize);
            var data = query.Select(x => new CategoryViewModel()
            {
                Id             = x.c.Id,
                Name           = x.ct.Name,
                IsShowOnHome   = x.c.IsShowOnHome,
                ParentId       = x.c.ParentId,
                LanguageId     = x.ct.LanguageId,
                SeoAlias       = x.ct.SeoAlias,
                SeoDescription = x.ct.SeoDescription,
                SeoTitle       = x.ct.SeoTitle,
                SortOrder      = x.c.SortOrder,
                Status         = x.c.Status
            }).ToList();

            var pageResult = new PageResult <CategoryViewModel>()
            {
                TotalRecord = data.Count(),
                Item        = data,
                PageIndex   = request.PageIndex,
                PageSize    = request.PageSize,
            };

            return(new ApiSuccessResult <PageResult <CategoryViewModel> >(pageResult));
        }
示例#3
0
        public async Task <IActionResult> GetAllPaging([FromQuery] GetManageCategoryPagingRequest request)
        {
            var data = await _categoryService.GetAllPaging(request);

            return(Ok(data));
        }
示例#4
0
 public async Task <ApiResult <PageResult <CategoryViewModel> > > GetCategoryPaging(GetManageCategoryPagingRequest request)
 {
     return(await GetAsync <ApiResult <PageResult <CategoryViewModel> > >($"/api/Categories/Paging?PageIndex=" +
                                                                          $"{request.PageIndex}&PageSize={request.PageSize}&Keyword={request.Keyword}&" +
                                                                          $"LanguageId={request.LanguageId}&Status={request.Status}"));
 }