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); }
public async Task <ActionResult <Pagination <MedicineListServiceModel> > > GetMedicinesByBrandName([FromQuery] MedicineParams medicineParams, string name) { return(await FilterMedicinesByBrandName(medicineParams, name)); }
// 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))); }
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))); }