private PagedListModel <OfferViewModel> GetOffers(PagedListRequestModel requestModel, Expression <Func <Offer, bool> > filterExpression) { requestModel = requestModel ?? new PagedListRequestModel { PageSize = 20 }; var itemsToSkip = (requestModel.Page - 1) * requestModel.PageSize; var itemsQuery = Session.QueryOver <Offer>() .Where(filterExpression); if (!string.IsNullOrEmpty(requestModel.Filter)) { itemsQuery.Where(x => x.Title.IsInsensitiveLike(requestModel.Filter, MatchMode.Anywhere)); } if (!string.IsNullOrEmpty(requestModel.Sort)) { itemsQuery.UnderlyingCriteria.AddOrder(new Order(requestModel.Sort, requestModel.OrderAscending)); } itemsQuery .Skip(itemsToSkip) .Take(requestModel.PageSize); var items = itemsQuery.Future(); var totalItems = itemsQuery.ToRowCountQuery().FutureValue <int>(); return(new PagedListModel <OfferViewModel> { Page = requestModel.Page, PageSize = requestModel.PageSize, TotalItems = totalItems.Value, TotalPages = (int)Math.Ceiling(totalItems.Value / (double)requestModel.PageSize), Items = Mapper.Map <IEnumerable <OfferViewModel> >(items) }); }
public PagedListModel <TViewModel> Get([FromUri] PagedListRequestModel requestModel) { requestModel = requestModel ?? new PagedListRequestModel { PageSize = 20 }; var itemsToSkip = (requestModel.Page - 1) * requestModel.PageSize; var itemsQuery = Session.QueryOver <TEntity>(); if (!string.IsNullOrEmpty(requestModel.Filter)) { itemsQuery.Where(CreateFilter(requestModel.Filter)); } if (!string.IsNullOrEmpty(requestModel.Sort)) { itemsQuery.UnderlyingCriteria.AddOrder(new Order(requestModel.Sort, requestModel.OrderAscending)); } itemsQuery .Skip(itemsToSkip) .Take(requestModel.PageSize); var items = itemsQuery.Future(); var totalItems = itemsQuery.ToRowCountQuery().FutureValue <int>(); return(new PagedListModel <TViewModel> { Page = requestModel.Page, PageSize = requestModel.PageSize, TotalItems = totalItems.Value, TotalPages = (int)Math.Ceiling(totalItems.Value / (double)requestModel.PageSize), Items = Mapper.Map <IEnumerable <TViewModel> >(items) }); }
public PagedListModel <OfferViewModel> GetCompleted(PagedListRequestModel requestModel) { return(GetOffers(requestModel, x => x.Status == OfferStatus.Won || x.Status == OfferStatus.Lost)); }
public PagedListModel <OfferViewModel> Get(PagedListRequestModel requestModel) { return(GetOffers(requestModel, x => x.Status == OfferStatus.Offered)); }