public List <HospitalFacility> GetByFilter(int pageNumber, int pageSize, HospitalFacilityListModelFilter filter, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); if (filter == null) { totalRecords = linqMetaData.MedicalVendorProfile.Count(); return(_hospitalFacilityFactory.CreateHospitalFacilities(linqMetaData.HospitalFacility.TakePage(pageNumber, pageSize))); } var query = from hf in linqMetaData.HospitalFacility join o in linqMetaData.Organization on hf.HospitalFacilityId equals o.OrganizationId orderby o.Name select new { hf, o }; if (!string.IsNullOrEmpty(filter.Name)) { query = query.Where(q => q.o.Name.Contains(filter.Name)); } if (filter.ParentHospitalPartnerId > 0) { var hospitalFacilityIds = (from hphf in linqMetaData.HospitalPartnerHospitalFacility where hphf.HospitalPartnerId == filter.ParentHospitalPartnerId select hphf.HospitalFacilityId); query = query.Where(q => hospitalFacilityIds.Contains(q.hf.HospitalFacilityId)); } totalRecords = query.Count(); return(_hospitalFacilityFactory.CreateHospitalFacilities(query.OrderBy(q => q.o.Name).TakePage(pageNumber, pageSize).Select(q => q.hf).ToArray())); } }
public ActionResult Index(HospitalFacilityListModelFilter filter, int pageNumber = 1) { int totalRecords; var model = _organizationService.GetHospitalFacilityListModel(pageNumber, _pageSize, filter, out totalRecords); if (model == null) { model = new HospitalFacilityListModel(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.Name, filter.ParentHospitalPartnerId }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public HospitalFacilityListModel GetHospitalFacilityListModel(int pageNumber, int pageSize, HospitalFacilityListModelFilter filter, out int totalRecords) { var hospitalFacilities = _hospitalFacilityRepository.GetByFilter(pageNumber, pageSize, filter, out totalRecords); if (hospitalFacilities.IsNullOrEmpty()) { return(null); } var organizationIds = hospitalFacilities.Select(hf => hf.Id).ToArray(); var hospitalPartnerIdHospitalFacilityIdPairs = _hospitalFacilityRepository.GetHospitalPartnerIdHositalFacilityIdPair(organizationIds); if (hospitalPartnerIdHospitalFacilityIdPairs != null && hospitalPartnerIdHospitalFacilityIdPairs.Any()) { organizationIds = organizationIds.Concat(hospitalPartnerIdHospitalFacilityIdPairs.Select(hphf => hphf.FirstValue)).ToArray(); } var organizations = _organizationRepository.GetOrganizations(organizationIds); var orgListModels = GetOrganizationListModel(organizations); var contracts = _medicalVendorRepository.GetAllContracts(); return(_hospitalFacilityListModelFactory.Create(hospitalFacilities, orgListModels, contracts, hospitalPartnerIdHospitalFacilityIdPairs)); }