コード例 #1
0
ファイル: ProductRepository.cs プロジェクト: huutoannht/mart
        public FindResponse FindProducts(FindRequest request)
        {
            var response = new FindResponse();

            using (var db = DbContext)
            {
                var query = db.Products
                    .Include("ProductImages")
                    .AsQueryable();

                if (!string.IsNullOrWhiteSpace(request.TextSearch))
                {
                    request.TextSearch = request.TextSearch.Trim().ToLower();
                    query = query.Where(q =>
                        q.Name.ToLower().Contains(request.TextSearch)
                        || q.ProductCode.ToLower().Contains(request.TextSearch)
                        || q.Category.Name.ToLower().Contains(request.TextSearch)
                        || q.Unit.Name.ToLower().Contains(request.TextSearch)
                    );
                }

                query = request.IsSortingValid ? request.ApplySortOption(query) : request.ApplyPageOption(query.OrderBy(q => q.Name));

                var pagingResult = request.ApplyPageOption(query).ToList();

                response.TotalRecords = query.Count();
                response.Results = pagingResult.MapList<Product>();
            }

            return response;
        }
コード例 #2
0
ファイル: ProductService.cs プロジェクト: huutoannht/mart
 public FindResponse FindProducts(FindRequest request)
 {
     return Execute(_repository, r => r.FindProducts(request));
 }
コード例 #3
0
ファイル: SanPhamController.cs プロジェクト: huutoannht/mart
        private void PopulateIndexModel(ProductIndexModel model)
        {
            model.InitSortInfo();

            if (string.IsNullOrWhiteSpace(model.SortBy))
            {
                model.SortBy = "Name";
            }

            var filter = new FindRequest
            {
                TextSearch = model.TextSearch,
                SortOption = new SortOption(new[] { new SortItem(model.SortBy, model.SortDirection.Value) }),
                PageOption = new PageOption { PageSize = model.Pagination.PageSize, PageNumber = model.Pagination.CurrentPageIndex }
            };

            var response = ServiceHelper.Product.ExecuteDispose(s => s.FindProducts(filter));
            model.Results = response.Results.MapList<ProductModel>();
            model.Pagination.TotalRecords = response.TotalRecords;
        }