Example #1
0
        public IEnumerable <Package> Get(PackageListModelFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);
                if (filter == null)
                {
                    totalRecords = linqMetaData.Package.Count();
                    var entities = linqMetaData.Package.OrderByDescending(p => p.IsActive).OrderBy(p => p.PackageName).TakePage(pageNumber, pageSize).ToArray();

                    return(Mapper.MapMultiple(entities));
                }
                else
                {
                    var query = from p in linqMetaData.Package where ((filter.Active ? p.IsActive : true) && (filter.Inactive ? !p.IsActive : true)) select p;
                    if (!string.IsNullOrEmpty(filter.Name))
                    {
                        query = from p in query where p.PackageName.Contains(filter.Name) select p;
                    }

                    if (filter.PackageType > 0)
                    {
                        query = from p in query where p.PackageTypeId == filter.PackageType select p;
                    }

                    totalRecords = query.Count();
                    var entities = query.OrderByDescending(p => p.IsActive).OrderBy(p => p.PackageName).TakePage(pageNumber, pageSize).ToArray();

                    return(Mapper.MapMultiple(entities));
                }
            }
        }
Example #2
0
        public ActionResult Index(PackageListModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;
            var packages = _packageRepository.Get(filter, pageNumber, _pageSize, out totalRecords);
            var model    = new PackageListModel
            {
                Packages = Mapper.Map <IEnumerable <Package>, IEnumerable <PackageViewModel> >(packages)
            };

            if (filter == null)
            {
                filter = new PackageListModelFilter();
            }
            model.Filter = filter;

            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.Name, filter.Active, filter.Inactive, filter.PackageType });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }