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.";
            }
        }
Beispiel #2
0
        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));
        }