public async Task <Response <IEnumerable <GetAllProductCategoryViewModel> > > Handle(GetAllProductCategoriesQuery request, CancellationToken cancellationToken)
        {
            var categories = await _productCategoryRepository.GetAllAsync();

            var categoriesViewModel = _mapper.Map <IEnumerable <GetAllProductCategoryViewModel> >(categories);

            return(new Response <IEnumerable <GetAllProductCategoryViewModel> >(categoriesViewModel));
        }
        public async Task <PagedResponse <IEnumerable <GetAllProductCategoryViewModel> > > Handle(GetAllProductCategoriesQuery request, CancellationToken cancellationToken)
        {
            var pageSize     = request.PageSize < 1 ? _paginationSettings.PageSize : request.PageSize;
            int totalRecords = await _productCategoryRepository.CountAsync();

            var validRequest = new RequestParameter(request.PageNumber, pageSize);

            if (request.PageNumber == 0) // get All
            {
                validRequest = new RequestParameter(1, totalRecords);
                var data = await _productCategoryRepository.GetAllAsync();

                var allCategoriesViewModel = _mapper.Map <IEnumerable <GetAllProductCategoryViewModel> >(data);
                return(new PagedResponse <IEnumerable <GetAllProductCategoryViewModel> >(allCategoriesViewModel, validRequest, totalRecords));
            }

            var categories = await _productCategoryRepository.GetPagedResponseAsync(validRequest.PageNumber, validRequest.PageSize);

            var categoriesViewModel = _mapper.Map <IEnumerable <GetAllProductCategoryViewModel> >(categories);

            return(new PagedResponse <IEnumerable <GetAllProductCategoryViewModel> >(categoriesViewModel, validRequest, totalRecords));
        }