public ActionResult ManageCustomTag(CustomTagListModelFilter filter, int pageNumber = 1) { var totalRecords = 0; var model = new CustomTagListModel { Collection = _customTagService.GetCustomTagFilterList(filter, pageNumber, _pageSize, out totalRecords), Filter = filter }; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.CorporateId, filter.CustomTag, filter.DisabledTag, filter.EnabledTag }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public IEnumerable <CustomTagViewModel> GetCustomTagFilterList(CustomTagListModelFilter filter, int pageNumber, int pageSize, out int totalRecords) { var corporateTags = _corporateTagRepository.GetCorporateTagByFilter(filter, pageNumber, pageSize, out totalRecords); if (corporateTags == null || !corporateTags.Any()) { return(null); } long[] corporateIds = corporateTags.Select(m => m.CorporateId).ToArray(); var organizations = _organizationRepository.GetOrganizations(corporateIds); var customerCountByTags = _corporateCustomerCustomTagRepository.GetCustomerCountByTag(corporateTags.Select(x => x.Tag).Distinct()); var collection = _customTagFactory.Create(corporateTags, organizations, customerCountByTags); return(collection); }
public IEnumerable <CorporateTag> GetCorporateTagByFilter(CustomTagListModelFilter filter, int pageNumber, int pageSize, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); filter = filter ?? new CustomTagListModelFilter(); var query = (from ct in linqMetaData.CorporateTag where ct.IsActive select ct); if (!string.IsNullOrEmpty(filter.CustomTag)) { query = (from q in query where q.Tag == filter.CustomTag select q); } if (filter.CorporateId > 0) { query = (from q in query where q.CorporateId == filter.CorporateId select q); } if (filter.DisabledTag) { query = (from q in query where q.IsDisabled select q); } if (filter.EnabledTag) { query = (from q in query where q.IsDisabled == false select q); } query = (from q in query orderby q.DateCreated descending select q); totalRecords = query.Count(); var entities = query.TakePage(pageNumber, pageSize).ToList(); return(Mapper.Map <IEnumerable <CorporateTagEntity>, IEnumerable <CorporateTag> >(entities)); } }