public List <MedicalVendor> GetByFilter(int pageNumber, int pageSize, MedicalVendorListModelFilter filter, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); if (filter == null) { totalRecords = linqMetaData.MedicalVendorProfile.Count(); return(_medicalVendorFactory.CreateMedicalVendors(linqMetaData.MedicalVendorProfile.TakePage(pageNumber, pageSize))); } var query = from mv in linqMetaData.MedicalVendorProfile join o in linqMetaData.Organization on mv.OrganizationId equals o.OrganizationId orderby o.Name select new { mv, o }; if (!string.IsNullOrEmpty(filter.Name)) { query = query.Where(q => q.o.Name.Contains(filter.Name)); } totalRecords = query.Count(); return(_medicalVendorFactory.CreateMedicalVendors(query.OrderBy(q => q.o.Name).TakePage(pageNumber, pageSize).Select(q => q.mv).ToArray())); } }
public ActionResult Index(MedicalVendorListModelFilter filter = null, int pageNumber = 1) { int totalRecords; var model = _organizationService.GetMedicalVendorlistModel(pageNumber, _pageSize, filter, out totalRecords); if (model == null) { model = new MedicalVendorListModel(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.Name }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public MedicalVendorListModel GetMedicalVendorlistModel(int pageNumber, int pageSize, MedicalVendorListModelFilter filter, out int totalRecords) { var medicalVendors = _medicalVendorRepository.GetByFilter(pageNumber, pageSize, filter, out totalRecords); if (medicalVendors.IsNullOrEmpty()) { return(null); } var organizationIds = medicalVendors.Select(mv => mv.Id).ToArray(); var organizations = _organizationRepository.GetOrganizations(organizationIds); var orgListModels = GetOrganizationListModel(organizations); var contracts = _medicalVendorRepository.GetAllContracts(); return(_medicalVendorListModelFactory.Create(medicalVendors, orgListModels, contracts)); }