示例#1
0
        private async Task <List <MedicineListServiceModel> > ApplyPagination(MedicineParams medicineParams, IEnumerable <MedicineListServiceModel> items)
        {
            IEnumerable <MedicineListServiceModel> medicines = null;
            int currentPage = medicineParams.PageIndex;
            int pageSize    = medicineParams.PageSize;
            var result      = items.Skip((currentPage - 1) * pageSize).Take(pageSize).ToList();

            return(result);
        }
示例#2
0
 public async Task <ActionResult <Pagination <MedicineListServiceModel> > > GetMedicinesByBrandName([FromQuery] MedicineParams medicineParams, string name)
 {
     return(await FilterMedicinesByBrandName(medicineParams, name));
 }
示例#3
0
        // public async Task<IEnumerable<MedicineListServiceModel>> GetMedicines([FromQuery]MedicineParams medicineParams)
        public async Task <ActionResult <Pagination <MedicineListServiceModel> > > SearchByTerm([FromQuery] MedicineParams medicineParams)
        {
            IEnumerable <MedicineListServiceModel> medicines;

            medicines = await _medicineService.GetMedicineBySearchTerm(medicineParams.Search);

            var totalItems = medicines.Count();
            var result     = await ApplyPagination(medicineParams, medicines);

            return(Ok(new Pagination <MedicineListServiceModel>(medicineParams.PageIndex, medicineParams.PageSize,
                                                                totalItems, result)));
        }
示例#4
0
        private async Task <ActionResult <Pagination <MedicineListServiceModel> > > FilterMedicinesByBrandName([FromQuery] MedicineParams medicineParams, string?name)
        {
            List <MedicineListServiceModel> result = null;

            if (name == "All")
            {
                var items = await _medicineService.GetMedicines();

                var totalCount = items.Count();
                result = await ApplyPagination(medicineParams, items);

                return(Ok(new Pagination <MedicineListServiceModel>(medicineParams.PageIndex, medicineParams.PageSize,
                                                                    totalCount, result)));
            }

            var medicines = await _medicineService.GetMedicinesByBrandName(name);

            var totalItems = medicines.Count();

            result = await ApplyPagination(medicineParams, medicines);

            return(Ok(new Pagination <MedicineListServiceModel>(medicineParams.PageIndex, medicineParams.PageSize,
                                                                totalItems, result)));
        }