Ejemplo n.º 1
0
        public async Task <ActionResult <IEnumerable <patient> > > GetPatients([FromQuery] paginationFilter filter, string?Name, int?fileNo, string?phoneNo)
        {
            var route                  = Request.Path.Value;
            var pageFilter             = new paginationFilter(filter.pageNumber, filter.pageSize);
            IQueryable <patient> query = _context.patients;

            if (!string.IsNullOrEmpty(Name))
            {
                query = _context.patients.Where(x => x.name == Name);
            }
            if (!string.IsNullOrEmpty(phoneNo))
            {
                query = _context.patients.Where(x => x.phoneNumber == phoneNo);
            }
            if (fileNo != null)
            {
                query = _context.patients.Where(x => x.fileNo == fileNo);
            }
            var patients = await query
                           .Skip((pageFilter.pageNumber - 1) *pageFilter.pageSize)
                           .Take(pageFilter.pageSize)
                           .ToListAsync();

            var totalRecords = await _context.patients.CountAsync();

            var pageResponse = paginationHelper.CreatePagedReponse <patient>(patients, pageFilter, totalRecords, _uriService, route);

            return(Ok(pageResponse));
        }
Ejemplo n.º 2
0
        public Uri GetPageUri(paginationFilter filter, string route)
        {
            var _endPointUri = new Uri(string.Concat(_baseUri, route));
            var modifiedUri  = QueryHelpers.AddQueryString(_endPointUri.ToString(), "pageNumber", filter.pageNumber.ToString());

            modifiedUri = QueryHelpers.AddQueryString(modifiedUri, "pageSize", filter.pageSize.ToString());
            return(new Uri(modifiedUri));
        }
Ejemplo n.º 3
0
        public static PagedResponse <List <T> > CreatePagedReponse <T>(List <T> pagedData, paginationFilter 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 paginationFilter(validFilter.pageNumber + 1, validFilter.pageSize), route)
                : null;

            respose.PreviousPage =
                validFilter.pageNumber - 1 >= 1 && validFilter.pageNumber <= roundedTotalPages
                ? uriService.GetPageUri(new paginationFilter(validFilter.pageNumber - 1, validFilter.pageSize), route)
                : null;

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