public ActionResult Index(CorporateAccountListModelFilter filter = null, int pageNumber = 1) { int totalRecords; var model = _organizationService.GetCorporateAccountListModel(pageNumber, PAGE_SIZE, filter, out totalRecords); if (model == null) { model = new CorporateAccountListModel(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.Name, filter.ShowHealthPlanOnly, filter.ShowCorporateAccountOnly }); model.PagingModel = new PagingModel(pageNumber, PAGE_SIZE, totalRecords, urlFunc); return(View(model)); }
public CorporateAccountListModel GetCorporateAccountListModel(int pageNumber, int pageSize, CorporateAccountListModelFilter filter, out int totalRecords) { var accounts = _corporateAccountRepository.GetbyFilter(pageNumber, pageSize, filter, out totalRecords); if (accounts.IsNullOrEmpty()) { return(null); } var accountIds = accounts.Select(a => a.Id).ToArray(); var accountIdPackagesPair = _corporateAccountRepository.GetAccountIdPackagesNamePair(accountIds); var organizations = _organizationRepository.GetOrganizations(accountIds); var orgListModels = GetOrganizationListModel(organizations); return(_corporateAccountListModelFactory.Create(accounts, accountIdPackagesPair, orgListModels)); }
public IEnumerable <CorporateAccount> GetbyFilter(int pageNumber, int pageSize, CorporateAccountListModelFilter filter, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); var query = from a in linqMetaData.Account join o in linqMetaData.Organization on a.AccountId equals o.OrganizationId where o.IsActive select new { a, o }; if (filter == null) { var accounts = from q in query orderby q.o.Name select q.a; totalRecords = accounts.Count(); return(Mapper.MapMultiple(accounts.TakePage(pageNumber, pageSize).ToArray())); } if (!string.IsNullOrEmpty(filter.Name)) { query = query.Where(q => q.o.Name.Contains(filter.Name)); } if (filter.ShowHealthPlanOnly) { query = query.Where(q => q.a.IsHealthPlan); } if (filter.ShowCorporateAccountOnly) { query = query.Where(q => q.a.IsHealthPlan == false); } var accountQuery = from q in query orderby q.o.Name select q.a; totalRecords = accountQuery.Count(); return(Mapper.MapMultiple(accountQuery.TakePage(pageNumber, pageSize).ToArray())); } }