private void LoadItems() { int[] searchTermIds = null; string query = null; string redirectUrl = null; SearchTermSortingBy orderBy = SearchTermSortingBy.IdAsc; if (HasState(USER_ID_FILTER)) { string value = GetStringState(SEARCH_TERM_ID_FILTER); int temp; searchTermIds = value.Split(',') .Where(x => int.TryParse(x.ToString(), out temp)) .Select(x => int.Parse(x)) .ToArray(); } if (HasState(QUERY_FILTER)) { query = GetStringState(QUERY_FILTER); } if (HasState(REDIRECT_URL_FILTER)) { redirectUrl = GetStringState(REDIRECT_URL_FILTER); } if (HasState("OrderBy")) { orderBy = (SearchTermSortingBy)GetIntState("OrderBy"); } var result = CampaignService.GetSearchTermLoadPaged( pageIndex: gvItems.CustomPageIndex, pageSize: gvItems.PageSize, queryValue: query, redirectUrl: redirectUrl, searchTermsIds: searchTermIds, orderBy: orderBy); if (result != null) { gvItems.DataSource = result.Items; gvItems.RecordCount = result.TotalCount; gvItems.CustomPageCount = result.TotalPages; } gvItems.DataBind(); if (gvItems.Rows.Count <= 0) { enbNotice.Message = "No records found."; } }
public PagedList <SearchTerm> GetSearchTermLoadPaged( int pageIndex = 0, int pageSize = 2147483647, IList <int> searchTermsIds = null, string queryValue = null, string redirectUrl = null, SearchTermSortingBy orderBy = SearchTermSortingBy.IdAsc) { var query = _searchTermRepository.Table; if (searchTermsIds != null && searchTermsIds.Count > 0) { query = query.Where(x => searchTermsIds.Contains(x.Id)); } if (!string.IsNullOrWhiteSpace(queryValue)) { query = query.Where(x => x.Query.Contains(queryValue)); } if (!string.IsNullOrWhiteSpace(redirectUrl)) { query = query.Where(x => x.RedirectUrl.Contains(redirectUrl)); } int totalRecords = query.Count(); switch (orderBy) { case SearchTermSortingBy.IdAsc: query = query.OrderBy(x => x.Id); break; case SearchTermSortingBy.IdDesc: query = query.OrderByDescending(x => x.Id); break; case SearchTermSortingBy.QueryAsc: query = query.OrderBy(x => x.Query); break; case SearchTermSortingBy.QueryDesc: query = query.OrderByDescending(x => x.Query); break; case SearchTermSortingBy.RedirectUrlAsc: query = query.OrderBy(x => x.RedirectUrl); break; case SearchTermSortingBy.RedirectUrlDesc: query = query.OrderByDescending(x => x.RedirectUrl); break; default: break; } query = query.Skip(pageIndex * pageSize).Take(pageSize); var list = query.ToList(); return(new PagedList <SearchTerm>(list, pageIndex, pageSize, totalRecords)); }