Exemple #1
0
        private IQueryable <Patient> ApplyFilter(string search, PatientFilterColumns filterColumn, IQueryable <Patient> query)
        {
            search = search.Trim();
            switch (filterColumn)
            {
            case PatientFilterColumns.LASTNAME:
                query = query.Where(x => x.LastName.StartsWith(search));
                break;

            default:
                query = query.Where(x => x.SSN.Equals(search));
                break;
            }

            return(query);
        }
Exemple #2
0
        public async Task <ActionResult> Index(string search, PatientFilterColumns column = PatientFilterColumns.SSN, int?page = null)
        {
            int pageSize   = 25;
            int pageNumber = (page ?? 1);

            IQueryable <Patient> query = db.Patients;

            if (!string.IsNullOrWhiteSpace(search))
            {
                query = ApplyFilter(search, column, query);
            }

            var patients = await query.OrderBy(patient => patient.LastName)
                           .ThenBy(patient => patient.FirstName)
                           .ToPagedListAsync(pageNumber, pageSize);

            var viewModel = new PatientListViewModel(patients, search, column);

            return(View(viewModel));
        }
Exemple #3
0
 public PatientListViewModel(IPagedList <Patient> patients, string search, PatientFilterColumns column)
 {
     Patients = MapPatients(patients);
     Search   = search;
     Column   = column;
 }