Exemplo n.º 1
0
        public PagedCollectionResponse <Patient> Get([FromQuery] PatientFilterModel filter)
        {
            // Filtering logic
            Func <PatientFilterModel, IEnumerable <Patient> > filterData = (filterModel) =>
            {
                return(_patients.Skip((filterModel.Page - 1) * filter.Limit)
                       .Take(filterModel.Limit));
            };

            // Get the data for the current page
            var response = new PagedCollectionResponse <Patient>
            {
                Items = filterData(filter)
            };

            //Get next page URL string
            PatientFilterModel nextFilter = filter.Clone() as PatientFilterModel;

            nextFilter.Page += 1;
            var nextUrl = filterData(nextFilter).Count() <= 0 ? null : Url.Action("Get", null, nextFilter, Request.Scheme);

            //Get previous page URL string
            PatientFilterModel previousFilter = filter.Clone() as PatientFilterModel;

            previousFilter.Page -= 1;
            var previousUrl = previousFilter.Page <= 0 ? null : this.Url.Action("Get", null, previousFilter, Request.Scheme);

            response.NextPage     = !string.IsNullOrWhiteSpace(nextUrl) ? new Uri(nextUrl) : null;
            response.PreviousPage = !string.IsNullOrWhiteSpace(previousUrl) ? new Uri(previousUrl) : null;

            return(response);
        }
 public IQueryable <T> GetVitals <T>(PatientFilterModel patientFilterModel, TokenModel tokenModel) where T : class, new()
 {
     SqlParameter[] parameters = { new SqlParameter("@PatientId",  patientFilterModel.PatientId),
                                   new SqlParameter("@PageNumber", patientFilterModel.pageNumber),
                                   new SqlParameter("@PageSize",   patientFilterModel.pageSize),
                                   new SqlParameter("@SortColumn", patientFilterModel.sortColumn),
                                   new SqlParameter("@SortOrder ", patientFilterModel.sortOrder) };
     return(_context.ExecStoredProcedureListWithOutput <T>(SQLObjects.PAT_GetVitals.ToString(), parameters.Length, parameters).AsQueryable());
 }