Exemple #1
0
        public async Task <IActionResult> Users(
            [FromQuery(Name = "s")] string search,
            [FromQuery(Name = "st")] RoleSelector roles,
            [FromQuery(Name = "o")] string sortOrder,
            [FromQuery(Name = "p")] int?page,
            [FromQuery(Name = "c")] int?pageCount)
        {
            if (sortOrder.IsNullOrEmpty())
            {
                sortOrder = nameof(UserDto.Email);
            }

            var currPage     = page == null || page < 0 ? 1 : page.Value;
            var countPerPage = pageCount == null || pageCount <= 0 ? 15 : pageCount.Value;

            SortPageResult <User> result =
                await _userManager.GetSortFilterPageAsync(roles, search, sortOrder, currPage, countPerPage);

            ViewBag.itemCount = result.TotalN;

            //TODO use mapper
            var model = new UsersViewModel()
            {
                CurrentSearch    = search,
                CurrentSortOrder = sortOrder,
                Descending       = sortOrder.EndsWith("_desc"),
                CurrentPage      = currPage,
                CountPerPage     = countPerPage,
                Roles            = (int)roles,
                ItemCount        = result.TotalN,
                Users            = _mapper.Map <IEnumerable <UserDto> >(result.FilteredData)
            };

            return(View(model));
        }
Exemple #2
0
        public async Task <ActionResult> Search(
            [FromQuery(Name = "s")] string search,
            [FromQuery(Name = "o")] string sortOrder,
            [FromQuery(Name = "p")] int?page,
            [FromQuery(Name = "c")] int?pageCount,
            [FromQuery(Name = "cat")] int[] categoryIds)

        {
            if (sortOrder.IsNullOrEmpty())
            {
                sortOrder = nameof(ProductDto.Name);
            }

            var currPage     = page ?? 1;
            var countPerPage = pageCount == null || pageCount <= 0 ? 15 : pageCount.Value;

            SortPageResult <Product> result =
                await _shopManager.GetSortFilterPageAsync(ItemTypeSelector.Enabled, currPage, countPerPage,
                                                          search, sortOrder, categoryIds);

            var allCategories =
                _mapper.Map <IEnumerable <CategoryDto> >(await _shopManager.GetAllCategoriesAsync());

            ViewBag.itemCount = result.TotalN;

            //TODO mapper
            var model = new SearchViewModel()
            {
                CurrentSearch    = search,
                CurrentSortOrder = sortOrder,
                Descending       = sortOrder.EndsWith("_desc"),
                CurrentPage      = currPage,
                CountPerPage     = countPerPage,
                ItemCount        = result.TotalN,
                CategoryIds      = categoryIds,
                FilteredItems    = _mapper.Map <IEnumerable <ProductDto> >(result.FilteredData),
                AllCategories    = allCategories
            };

            if (!search.IsNullOrEmpty())
            {
                IEnumerable <Category> filteredCategories = await _shopManager.SearchCategoriesByName(search);

                model.FilteredCategories = _mapper.Map <IEnumerable <CategoryDto> >(filteredCategories);
            }

            return(View(model));
        }
Exemple #3
0
        public async Task <IActionResult> Items(
            [FromQuery(Name = "s")] string search,
            [FromQuery(Name = "st")] ItemTypeSelector types,
            [FromQuery(Name = "o")] string sortOrder,
            [FromQuery(Name = "p")] int?page,
            [FromQuery(Name = "c")] int?pageCount,
            [FromQuery(Name = "cat")] int[] categoryIds,
            [FromQuery(Name = "desc")] int[] descGroupIds)
        {
            if (sortOrder.IsNullOrEmpty())
            {
                sortOrder = nameof(ProductDto.Name);
            }

            var currPage     = page ?? 1;
            var countPerPage = pageCount == null || pageCount <= 0 ? 15 : pageCount.Value;

            SortPageResult <Product> result =
                await _shopManager.GetSortFilterPageAsync(types, currPage, countPerPage, search, sortOrder,
                                                          categoryIds, descGroupIds);

            var allCategories =
                _mapper.Map <IEnumerable <CategoryDto> >(await _shopManager.GetAllCategoriesAsync());

            ViewBag.itemCount = result.TotalN;

            var model = new ItemsViewModel()
            {
                CurrentSearch    = search,
                CurrentSortOrder = sortOrder,
                Descending       = sortOrder.EndsWith("_desc"),
                CurrentPage      = currPage,
                CountPerPage     = countPerPage,
                Types            = (int)types,
                ItemCount        = result.TotalN,
                CategoryIds      = categoryIds,
                DescGroupIds     = descGroupIds,
                Items            = _mapper.Map <IEnumerable <ProductDto> >(result.FilteredData),
                Categories       = allCategories
            };

            return(View(model));
        }
Exemple #4
0
        public async Task <ActionResult> Index(
            [FromQuery(Name = "p")] int?page,
            [FromQuery(Name = "c")] int?pageCount)
        {
            var currPage     = page ?? 1;
            var countPerPage = pageCount == null || pageCount <= 0 ? 15 : pageCount.Value;

            SortPageResult <Product> result =
                await _shopManager.GetSortFilterPageAsync(ItemTypeSelector.Enabled, currPage, countPerPage);

            var recentProductNumber = 4;
            IEnumerable <Product> recentProducts = await _shopManager.GetNewProducts(recentProductNumber);

            var model = new IndexViewModel()
            {
                RecentItems  = _mapper.Map <IEnumerable <ProductDto> >(recentProducts),
                Items        = _mapper.Map <IEnumerable <ProductDto> >(result.FilteredData),
                ItemCount    = result.TotalN,
                CurrentPage  = currPage,
                CountPerPage = countPerPage
            };

            return(View(model));
        }