public void GetByFilter_Tester() { ISourceCodeRepository sourceCodeRepository = new SourceCodeRepository(); long totalRecords = 0; var filter = new SourceCodeListModelFilter { SourceCodeName = "Sand" }; var records = sourceCodeRepository.GetbyFilter(filter, 1, 25, out totalRecords); Assert.IsNotNull(records); Assert.IsNotEmpty(records.ToArray()); }
public IEnumerable <SourceCode> GetbyFilter(SourceCodeListModelFilter filter, int pageNumber, int pageSize, out long totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); if (filter == null) { var entities = linqMetaData.Coupons.OrderByDescending(c => c.DateModified ?? c.DateCreated).TakePage(pageNumber, pageSize).WithPath(path => path.Prefetch(ce => ce.CouponSignUpMode) .Prefetch(ce => ce.PackageSourceCodeDiscount) .Prefetch(ce => ce.TestSourceCodeDiscount) .Prefetch(ce => ce.ProductSourceCodeDiscount) .Prefetch(ce => ce.ShippingOptionSourceCodeDiscount)).ToArray(); totalRecords = linqMetaData.Coupons.Count(); return(_mapper.MapMultiple(entities)); } else { var query = from c in linqMetaData.Coupons select c; if (!string.IsNullOrEmpty(filter.SourceCodeName)) { query = from c in query where c.CouponCode.Contains(filter.SourceCodeName) select c; } if (filter.SourceCodeTypeId > 0) { query = from c in query where c.CouponTypeId == filter.SourceCodeTypeId select c; } totalRecords = query.Count(); var entities = query.OrderByDescending(c => c.DateModified ?? c.DateCreated).TakePage(pageNumber, pageSize).WithPath(path => path.Prefetch(ce => ce.CouponSignUpMode) .Prefetch(ce => ce.PackageSourceCodeDiscount) .Prefetch(ce => ce.TestSourceCodeDiscount) .Prefetch(ce => ce.ProductSourceCodeDiscount) .Prefetch(ce => ce.ShippingOptionSourceCodeDiscount)).ToArray(); return(_mapper.MapMultiple(entities)); } } }
public ActionResult Index(SourceCodeListModelFilter filter = null, int pageNumber = 1) { long totalRecords = 0; var model = _sourceCodeService.Get(filter, pageNumber, _pageSize, out totalRecords) ?? new SourceCodeListModel(); if (filter == null) { filter = new SourceCodeListModelFilter(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.SourceCodeName, filter.SourceCodeTypeId }); model.PagingModel = new PagingModel(pageNumber, _pageSize, (int)totalRecords, urlFunc); return(View(model)); }