private DetachedCriteria GetSearchCriteriaFromListSearch(ProductListSearchCriteria listSearchCriteria, bool withTotal) { var searchCriteria = DetachedCriteria.For(typeof(Product), "p") .SetFetchMode("Prices", FetchMode.Join) .SetFetchMode("Categories", FetchMode.Join) .SetResultTransformer(new DistinctRootEntityResultTransformer()); if (!listSearchCriteria.ShowDeletedProducts) { searchCriteria.Add(Restrictions.Eq("IsDeleted", false)); // default to showing not deleted products } if (!withTotal) { // add ordering by Property var sortBy = string.IsNullOrEmpty(listSearchCriteria.SortBy) ? "Name" : listSearchCriteria.SortBy; searchCriteria.AddOrder(listSearchCriteria.Ascending ? Order.Asc(sortBy) : Order.Desc(sortBy)); searchCriteria.SetFirstResult(listSearchCriteria.CurrentPage * listSearchCriteria.ResultsPerPage) .SetMaxResults(listSearchCriteria.ResultsPerPage); } return(searchCriteria); }
public Tuple <IEnumerable <Product>, int> List(ProductListSearchCriteria listSearchCriteria) { var searchCriteria = GetSearchCriteriaFromListSearch(listSearchCriteria, false); var productList = repository.Search(searchCriteria); var countCriteria = GetSearchCriteriaFromListSearch(listSearchCriteria, true); var totalProducts = repository.Count(countCriteria); var result = new Tuple <IEnumerable <Product>, int>(productList, totalProducts); return(result); }
public Tuple<IEnumerable<Product>, int> List(ProductListSearchCriteria listSearchCriteria) { var searchCriteria = GetSearchCriteriaFromListSearch(listSearchCriteria, false); var productList = repository.Search(searchCriteria); var countCriteria = GetSearchCriteriaFromListSearch(listSearchCriteria, true); var totalProducts = repository.Count(countCriteria); var result = new Tuple<IEnumerable<Product>, int>(productList, totalProducts); return result; }
public JsonList <ProductModel> Search( [FromUri] ProductListSearchCriteria searchCriteria, [FromUri] PaginationOptions options) { var products = _prodService.Search(searchCriteria, options); return(new JsonList <ProductModel>() { Data = products.ToModelList <Product, ProductModel>(), TotalItems = products.TotalCount }); }
//[HttpGet] //[TransactionFilter(TransactionFilterType.ReadUncommitted)] //public ActionResult _List(int page, int perPage, string orderBy, bool ascending) //{ // Tuple<IEnumerable<Product>, int> result = GetProductList(page, orderBy, ascending, perPage); // var productList = new ProductListItem().FromEntityList(result.Item1); // return View(new GridModel{Data = productList, Total = result.Item2}); //} private Tuple <IEnumerable <Product>, int> GetProductList(int page, string orderBy, string ascending, int perPage) { var searchCriteria = new ProductListSearchCriteria { CurrentPage = page - 1, Ascending = ascending.ToUpper() == "TRUE", SortBy = orderBy, ResultsPerPage = perPage }; return(productService.List(searchCriteria)); }
public ActionResult List(ProductListSearchCriteria searchCriteria) { ProductListQueryBuilder queryBuilder = new ProductListQueryBuilder(searchCriteria); var result = queryBuilder.Execute(daoTemplate.Session); Category category = null; if (searchCriteria.CategoryId != null) { category = daoTemplate.FindByID <Category>(searchCriteria.CategoryId); } return(View(new ProductListViewModel() { Category = category, Results = result, IsNew = searchCriteria.IsNew })); }
public IPagedList <Product> Search(ProductListSearchCriteria searchCriteria, PaginationOptions options) { var query = _productRepo.TableNoTracking.IncludeTable(x => x.ProductCategory); // Filter if (!string.IsNullOrEmpty(searchCriteria.Sku)) { query = query.Where(x => x.Sku.Contains(searchCriteria.Sku)); } if (!string.IsNullOrEmpty(searchCriteria.Name)) { query = query.Where(x => x.Name.Contains(searchCriteria.Name)); } if (searchCriteria.CategoryId > 0) { query = query.Where(x => x.CategoryId == searchCriteria.CategoryId); } if (searchCriteria.ActiveOnly) { query = query.Where(x => x.IsActive); } // Sort if (string.IsNullOrEmpty(options.Sort)) { query = query.OrderBy(x => x.Sku); } else { // HACK: support nested sort if (options.Sort.Equals("categoryName", StringComparison.OrdinalIgnoreCase)) { options.Sort = "ProductCategory.Name"; } query = query.SortBy(options.SortExpression); } return(new PagedList <Product>(query, options.PageIndex, options.PageSize)); }
private DetachedCriteria GetSearchCriteriaFromListSearch(ProductListSearchCriteria listSearchCriteria, bool withTotal) { var searchCriteria = DetachedCriteria.For(typeof(Product), "p") .SetFetchMode("Prices", FetchMode.Join) .SetFetchMode("Categories", FetchMode.Join) .SetResultTransformer(new DistinctRootEntityResultTransformer()); if (!listSearchCriteria.ShowDeletedProducts) { searchCriteria.Add(Restrictions.Eq("IsDeleted", false)); // default to showing not deleted products } if (!withTotal) { // add ordering by Property var sortBy = string.IsNullOrEmpty(listSearchCriteria.SortBy) ? "Name" : listSearchCriteria.SortBy; searchCriteria.AddOrder(listSearchCriteria.Ascending ? Order.Asc(sortBy) : Order.Desc(sortBy)); searchCriteria.SetFirstResult(listSearchCriteria.CurrentPage*listSearchCriteria.ResultsPerPage) .SetMaxResults(listSearchCriteria.ResultsPerPage); } return searchCriteria; }
//[HttpGet] //[TransactionFilter(TransactionFilterType.ReadUncommitted)] //public ActionResult _List(int page, int perPage, string orderBy, bool ascending) //{ // Tuple<IEnumerable<Product>, int> result = GetProductList(page, orderBy, ascending, perPage); // var productList = new ProductListItem().FromEntityList(result.Item1); // return View(new GridModel{Data = productList, Total = result.Item2}); //} private Tuple<IEnumerable<Product>, int> GetProductList(int page, string orderBy, string ascending, int perPage) { var searchCriteria = new ProductListSearchCriteria { CurrentPage = page - 1, Ascending = ascending.ToUpper() == "TRUE", SortBy = orderBy, ResultsPerPage = perPage }; return productService.List(searchCriteria); }