public IEnumerable <CheckListTemplate> GetTemplatesByFilters(CheckListTemplateModelFilter filter, int pageNumber, int pageSize, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); var query = linqMetaData.CheckListTemplate.Where(x => x.IsActive); if (!string.IsNullOrEmpty(filter.Name)) { query = query.Where(x => x.Name.Contains(filter.Name)); } if (filter.HealthPlanId > 0) { query = query.Where(x => x.HealthPlanId.HasValue && x.HealthPlanId.Value == filter.HealthPlanId); } if (filter.CheckListTypeId > 0) { query = query.Where(x => x.Type == filter.CheckListTypeId); } totalRecords = query.Count(); var entities = query.OrderByDescending(p => p.IsActive).OrderBy(p => p.Name).TakePage(pageNumber, pageSize).ToArray(); return(Mapper.Map <IEnumerable <CheckListTemplateEntity>, IEnumerable <CheckListTemplate> >(entities)); } }
private CheckListTemplateListModel GetCheckListTemplateListModel(CheckListTemplateModelFilter filter, int pageNumber = 1) { var totalRecords = 0; var templates = _checkListTemplateRepository.GetTemplatesByFilters(filter, pageNumber, _pageSize, out totalRecords); var healthPlans = _corporateAccountRepository.GetByChecklistTemplateIds(templates.Select(x => x.Id)); var list = new List <CheckListTemplateViewModel>(); foreach (var checkListTemplate in templates) { var healthPlanName = "N/A"; var checklisthealthPlans = healthPlans.Where(x => x.CheckListTemplateId == checkListTemplate.Id); if (!checklisthealthPlans.IsNullOrEmpty()) { healthPlanName = string.Join(", ", checklisthealthPlans.Select(x => x.Name)); } string typeName = string.Empty; var checklistType = CheckListType.CheckList.GetNameValuePairs().FirstOrDefault(x => x.FirstValue == checkListTemplate.Type); typeName = checklistType == null ? "N/A" : checklistType.SecondValue; list.Add(new CheckListTemplateViewModel { Name = checkListTemplate.Name, HealthPlan = healthPlanName, Id = checkListTemplate.Id, IsActive = checkListTemplate.IsActive, IsPublished = checkListTemplate.IsPublished, Type = typeName }); } var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.Name, filter.Active, filter.Inactive, filter.HealthPlanId }); return(new CheckListTemplateListModel { Filter = filter, PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc), Templates = list }); }
// // GET: /Medical/HealthAssessment/ public ActionResult Index(CheckListTemplateModelFilter filter = null, int pageNumber = 1) { return(View(GetCheckListTemplateListModel(filter, pageNumber))); }