Пример #1
0
        public async Task <IActionResult> SearchQuick([FromQuery] PaginationFilterQuickSeach filter)
        {
            var route = Request.Path.Value;
            var model = await _userService.SearchQuick(filter.SearchString, filter.PageNumber, filter.PageSize);

            var pagedReponse = PaginationHelper.CreatePagedReponse <UserModel>(model.entities, model.PaginationFilter, model.totalRecords, _uriService, route);

            return(Ok(pagedReponse));
        }
Пример #2
0
        public Uri GetPageUri(PaginationFilterQuickSeach filter, string route)
        {
            var _enpointUri = new Uri(string.Concat(_baseUri, route));
            var modifiedUri = QueryHelpers.AddQueryString(_enpointUri.ToString(), "SearchString", filter.SearchString.ToString());

            modifiedUri = QueryHelpers.AddQueryString(modifiedUri, "pageNumber", filter.PageNumber.ToString());
            modifiedUri = QueryHelpers.AddQueryString(modifiedUri, "pageSize", filter.PageSize.ToString());
            return(new Uri(modifiedUri));
        }
Пример #3
0
        public async Task <GetAllWithPaging <UserModel, PaginationFilterQuickSeach> > SearchQuick(string searchString, int PageNumber, int PageSize)
        {
            var validFilter = new PaginationFilterQuickSeach(searchString, PageNumber, PageSize);
            var users       = await _userRepository.SearchQuick(searchString);

            var usersModel   = _mapper.Map <List <UserModel> >(users);
            var totalRecords = usersModel.Count();
            var pagedData    = usersModel
                               .Skip((validFilter.PageNumber - 1) * validFilter.PageSize)
                               .Take(validFilter.PageSize)
                               .ToList();
            var result = new GetAllWithPaging <UserModel, PaginationFilterQuickSeach>(validFilter, pagedData, totalRecords);

            return(result);
        }
Пример #4
0
        public static PagedResponse <List <T> > CreatePagedReponse <T>(List <T> pagedData, PaginationFilterQuickSeach validFilter, int totalRecords, IUriService uriService, string route)
        {
            var respose           = new PagedResponse <List <T> >(pagedData, validFilter.PageNumber, validFilter.PageSize);
            var totalPages        = ((double)totalRecords / (double)validFilter.PageSize);
            int roundedTotalPages = Convert.ToInt32(Math.Ceiling(totalPages));

            respose.NextPage =
                validFilter.PageNumber >= 1 && validFilter.PageNumber < roundedTotalPages
                ? uriService.GetPageUri(new PaginationFilterQuickSeach(validFilter.SearchString, validFilter.PageNumber + 1, validFilter.PageSize), route)
                : null;

            respose.PreviousPage =
                validFilter.PageNumber - 1 >= 1 && validFilter.PageNumber <= roundedTotalPages
                ? uriService.GetPageUri(new PaginationFilterQuickSeach(validFilter.SearchString, validFilter.PageNumber - 1, validFilter.PageSize), route)
                : null;

            respose.FirstPage    = uriService.GetPageUri(new PaginationFilterQuickSeach(validFilter.SearchString, 1, validFilter.PageSize), route);
            respose.LastPage     = uriService.GetPageUri(new PaginationFilterQuickSeach(validFilter.SearchString, roundedTotalPages, validFilter.PageSize), route);
            respose.TotalPages   = roundedTotalPages;
            respose.TotalRecords = totalRecords;
            return(respose);
        }