예제 #1
0
        public IEnumerable <Content> Get(ContentListModelFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            if (filter == null)
            {
                filter = new ContentListModelFilter();
            }

            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                var query = from c in linqMetaData.Content
                            where (filter.Inactive == filter.Active) || (c.IsActive == filter.Active)
                            select c;

                if (!string.IsNullOrEmpty(filter.Title))
                {
                    filter.Title = filter.Title.Trim();

                    query = from c in query where c.Title.Contains(filter.Title) select c;
                }

                totalRecords = query.Count();

                var entities = Enumerable.ToArray <ContentEntity>(query.OrderByDescending(q => q.IsActive).OrderByDescending(q => q.DateModified ?? q.DateCreated).TakePage(pageNumber, pageSize));

                return(Mapper.Map <IEnumerable <ContentEntity>, IEnumerable <Content> >(entities));
            }
        }
예제 #2
0
        public ContentListModel GetListModel(ContentListModelFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            var objects    = _contentRepository.Get(filter, pageNumber, pageSize, out totalRecords);
            var viewModels = Mapper.Map <IEnumerable <Content>, IEnumerable <ContentViewModel> >(objects);
            var model      = new ContentListModel {
                Collection = viewModels, Filter = filter
            };

            return(model);
        }
예제 #3
0
        public ActionResult Index(ContentListModelFilter filter = null, int pageNumber = 1)
        {
            if (filter == null)
            {
                filter = new ContentListModelFilter();
            }

            int totalRecords;

            var model = _contentService.GetListModel(filter, pageNumber, _defaultSize, out totalRecords);

            model.PagingModel = new PagingModel(pageNumber, _defaultSize, totalRecords, p => Url.Action("Index", new { filter.Title, filter.Inactive, filter.Active, pageNumber = p }));
            return(View(model));
        }