public PagedActionResult <ProductCategory> Search([FromUri] ProductCategoryFilter filter)
 {
     return(SafeGetPagedData <ProductCategory>((result) =>
     {
         int totalCount = 0;
         var temp = ProductCategoryService.Search(filter, out totalCount);
         result.TotalCount = totalCount;
         result.Data = temp;
     }));
 }
Esempio n. 2
0
        /// <summary>
        /// Gets a list of product categories. Max 100 per call.
        /// </summary>
        /// <returns></returns>
        public virtual async Task <ProductCategoryModelCollection> ListAsync(ProductCategoryFilter filter = null)
        {
            var req = PrepareRequest("product-categories");

            if (filter != null)
            {
                req.QueryParams.AddRange(filter.ToParameters());
            }

            return(await ExecuteRequestAsync <ProductCategoryModelCollection>(req, HttpMethod.Get, rootElement : ""));
        }
Esempio n. 3
0
        public ActionResult ProductCategory(ProductCategoryFilter filter)
        {
            if (filter != null)
            {
                Session["ProductCategoryFilter"] = filter;
            }
            else
            {
                Session["ProductCategoryFilter"] = new ProductCategoryFilter();
            }

            return(RedirectToAction("ProductCategory"));
        }
Esempio n. 4
0
        public void ProcessProductCategoryFilterInsertion(int categoryFilterId, IList <int> productIds)
        {
            for (int i = 0; i < productIds.Count; i++)
            {
                var item = new ProductCategoryFilter()
                {
                    CategoryFilterId = categoryFilterId,
                    ProductId        = productIds[i]
                };

                _productCategoryFilterRepository.Create(item);
            }
        }
Esempio n. 5
0
        public ActionResult Index(ProductCategoryFilter filter, string searchBy = "")
        {
            if (filter != null)
            {
                Session["ProductCategoryFilter"] = filter;
            }
            else
            {
                Session["ProductCategoryFilter"] = new ProductCategoryFilter();
            }

            return(RedirectToAction("Index"));
        }
Esempio n. 6
0
        public ActionResult ProductCategory(int page = 1, int pageSize = 20, string sortby = "")
        {
            ProductCategoryFilter filter = (ProductCategoryFilter)Session["ProductCategoryFilter"];

            if (filter == null)
            {
                filter = new ProductCategoryFilter();
                Session["ProductCategoryFilter"] = filter;
            }
            var model = _proCatRepo.GetCategoriesPaging(filter, page, pageSize, sortby);

            ViewBag.PageNumber = page;
            ViewBag.Title      = "Danh sách danh mục";
            return(View(model));
        }
        /// <summary>
        /// 根据条件查询产品分类
        /// </summary>
        /// <param name="filter">keywords(分类名称,)</param>
        /// <param name="totalCount"></param>
        /// <returns>产品分类数据集</returns>
        public IEnumerable <ProductCategory> Search(ProductCategoryFilter filter, out int totalCount)
        {
            var result    = new List <ProductCategory>();;
            var queryable = Repository.GetInclude(t => t.SubProducts, false).Where(t => t.MerchantID == AppContext.CurrentSession.MerchantID);

            if (filter != null)
            {
                if (!string.IsNullOrEmpty(filter.Code))
                {
                    queryable = queryable.Where(p => p.Code.Contains(filter.Code));
                }
                if (!string.IsNullOrEmpty(filter.Name))
                {
                    queryable = queryable.Where(p => p.Name.Contains(filter.Name));
                }
                if (!string.IsNullOrEmpty(filter.NameOrCode))
                {
                    queryable = queryable.Where(t => t.Code.Contains(filter.NameOrCode) || t.Name.Contains(filter.NameOrCode));
                }
            }
            queryable  = queryable.OrderBy(t => t.ParentId).ThenBy(t => t.Index);
            totalCount = queryable.Count();
            if (filter != null && filter.Start.HasValue && filter.Limit.HasValue)
            {
                queryable = queryable.Skip(filter.Start.Value).Take(filter.Limit.Value);
            }
            result = queryable.ToList();
            if (filter.IsFromPickUpOrder)
            {
                result.ForEach(t =>
                {
                    if (t.SubProducts != null && t.SubProducts.Count > 0)
                    {
                        t.SubProducts = t.SubProducts.Where(item => item.ProductType == EProductType.Service && item.IsPublish).ToList();
                    }
                });
                var removeItem = result.Where(t => t.SubProducts == null || t.SubProducts.Count < 1).ToList();
                if (removeItem != null && removeItem.Count > 0)
                {
                    removeItem.ForEach(t =>
                    {
                        result.Remove(t);
                    });
                }
            }
            return(result);
        }
Esempio n. 8
0
        // GET: Admin/ProductCategory
        public ActionResult Index(int?page, int pageSize = 20, string sortBy = "")
        {
            //var dao = new ProductCategoryDao();
            //var model = dao.ListAllPaging(searchString, page, pageSize, catId);
            ProductCategoryFilter filter = (ProductCategoryFilter)Session["ProductCategoryFilter"];

            if (filter == null)
            {
                filter = new ProductCategoryFilter();
                Session["ProductCategoryFilter"] = filter;
            }
            filter.CatalogueId = SiteConfiguration.CatalogueId;
            var result = _proCatRepo.GetCategoriesPaging(filter, page ?? 1, pageSize, sortBy);

            ViewBag.Filter = filter;
            return(View(result));
        }
Esempio n. 9
0
        public IEnumerable <v_CategoryOfProduct> GetCategoriesPaging(ProductCategoryFilter filter, int pageIndex = 1, int pageSize = 20, string sortby = "")
        {
            IQueryable <v_CategoryOfProduct> model = entities.v_CategoryOfProduct;

            try
            {
                if (!string.IsNullOrEmpty(filter.SearchString))
                {
                    string searchString = filter.SearchString.Trim();
                    model = model.Where(x => x.CategoryName.Contains(searchString));
                }

                if (filter.CatalogueId > 0)
                {
                    model = model.Where(x => x.CatalogueId == filter.CatalogueId);
                }

                if (filter.ParentId > 0)
                {
                    model = model.Where(x => x.ParentId == filter.ParentId);
                }

                if (filter.Status.Count() > 0)
                {
                    model = model.Where(w => filter.Status.Contains(w.Status));
                }

                if (!String.IsNullOrWhiteSpace(sortby))
                {
                    model = model.OrderByDescending(x => x.CreatedDate);
                }
                else
                {
                    model = model.OrderByDescending(x => x.CreatedDate);
                }
            }
            catch (Exception ex)
            {
                string subject = "Error " + SiteSetting.SiteName + " at GetCategoriesPaging at ProductRepo at Model.Repository";
                string message = StringHelper.Parameters2ErrorString(ex, conn);
                MailHelper.SendMail(SiteSetting.EmailAdmin, subject, message);
            }
            return(model.ToPagedList(pageIndex, pageSize));
        }
Esempio n. 10
0
        public async Task <BasePageList <ProductCategoryResult> > GetAsync(ProductCategoryFilter filter)
        {
            var productCategoriesPageList = await _productCategoryRepository.GetAsync(filter);

            var createdByIds = productCategoriesPageList.Collections.Select(x => x.CreatedById).ToArray();
            var updatedByIds = productCategoriesPageList.Collections.Select(x => x.UpdatedById).ToArray();

            var createdByUsers = await _userRepository.GetNameByIdsAsync(createdByIds);

            var updatedByUsers = await _userRepository.GetNameByIdsAsync(updatedByIds);

            foreach (var category in productCategoriesPageList.Collections)
            {
                var createdBy = createdByUsers.FirstOrDefault(x => x.Id == category.CreatedById);
                category.CreatedBy = createdBy.DisplayName;

                var updatedBy = updatedByUsers.FirstOrDefault(x => x.Id == category.CreatedById);
                category.UpdatedBy = updatedBy.DisplayName;
            }

            return(productCategoriesPageList);
        }
Esempio n. 11
0
        public Tuple <List <ProductCategoryView>, int> getCategories(ProductCategoryFilter filter, int pageNumber = 1, int pageSize = 10, string SortBy = "")
        {
            var result    = new List <ProductCategoryView>();
            int totalItem = 0;

            try
            {
                using (var cont = new SqlConnection(conn))
                {
                    var parameters = new DynamicParameters();

                    if (pageNumber > 1)
                    {
                        parameters.Add("@PageNbr", pageNumber);
                    }

                    if (pageSize > 10)
                    {
                        parameters.Add("@PageSize", pageSize);
                    }

                    if (!String.IsNullOrWhiteSpace(SortBy))
                    {
                        parameters.Add("@SortCol", SortBy);
                    }

                    result = cont.Query <ProductCategoryView>("sp_CategoryOfProduct_Search_Paging_Sorting", parameters, commandType: CommandType.StoredProcedure).ToList();
                }
            }
            catch (Exception ex)
            {
                string subject = "Error " + SiteSetting.SiteName + " at getProducts at ProductRepo at Model.Repository";
                string message = StringHelper.Parameters2ErrorString(ex, conn);
                MailHelper.SendMail(SiteSetting.EmailAdmin, subject, message);
            }

            return(new Tuple <List <ProductCategoryView>, int>(result, totalItem));
        }
        public async Task <BasePageList <ProductCategoryResult> > GetAsync(ProductCategoryFilter filter)
        {
            var search = filter.Keyword != null?filter.Keyword.ToLower() : "";

            var categoryQuery = _productCategoryRepository.Table;

            if (!string.IsNullOrEmpty(search))
            {
                categoryQuery = categoryQuery.Where(user => user.Name.ToLower().Contains(search) ||
                                                    user.Description.ToLower().Contains(search));
            }

            if (filter.StatusId.HasValue)
            {
                categoryQuery = categoryQuery.Where(x => x.StatusId == filter.StatusId);
            }

            if (filter.CreatedById.HasValue)
            {
                categoryQuery = categoryQuery.Where(x => x.CreatedById == filter.CreatedById);
            }

            if (filter.UpdatedById.HasValue)
            {
                categoryQuery = categoryQuery.Where(x => x.UpdatedById == filter.UpdatedById);
            }

            // Filter by register date/ created date
            if (filter.CreatedDateFrom.HasValue && filter.CreatedDateTo.HasValue)
            {
                categoryQuery = categoryQuery.Where(x => x.CreatedDate >= filter.CreatedDateFrom && x.CreatedDate <= filter.CreatedDateTo);
            }
            else if (filter.CreatedDateTo.HasValue)
            {
                categoryQuery = categoryQuery.Where(x => x.CreatedDate <= filter.CreatedDateTo);
            }
            else if (filter.CreatedDateFrom.HasValue)
            {
                categoryQuery = categoryQuery.Where(x => x.CreatedDate >= filter.CreatedDateFrom && x.CreatedDate <= DateTime.UtcNow);
            }

            var query = categoryQuery.Select(a => new ProductCategoryResult
            {
                CreatedById = a.CreatedById,
                CreatedDate = a.CreatedDate,
                Description = a.Description,
                Id          = a.Id,
                Name        = a.Name,
                ParentId    = a.ParentId,
                UpdatedById = a.UpdatedById,
                UpdatedDate = a.UpdatedDate,
                StatusId    = a.StatusId
            });

            var filteredNumber = query.Select(x => x.Id).Count();

            var categories = await query.Skip(filter.PageSize *(filter.Page - 1))
                             .Take(filter.PageSize).ToListAsync();

            var result = new BasePageList <ProductCategoryResult>(categories)
            {
                TotalResult = filteredNumber,
                TotalPage   = (int)Math.Ceiling((double)filteredNumber / filter.PageSize)
            };

            return(result);
        }