public async Task <int> GetCountGoodsAsync(SearchGoods search) { int count = await this._context.Goods.Where(c => (search.CurrentCategory == null || c.CategoryId == search.CurrentCategory) && (search.CurrentClothesType == null || c.ClothesTypeId == search.CurrentClothesType) && (c.Price >= search.MinPrice) && (search.MaxPrice == null || (c.Price >= search.MinPrice && c.Price <= search.MaxPrice)) && (search.CurrentSize == null || c.Sizes.Any(s => s.SizeId == search.CurrentSize)) && ((search.searchName == null || search.searchName == "") || c.Name.ToUpper().Contains(search.searchName.ToUpper()))).CountAsync(); return(count); }
public async Task <ICollection <GoodsModel> > GetGoodsForOnePageAsync(SearchGoods search, int pageSize, int page) { List <Goods> goods = await this._context.Goods.Where(c => (search.CurrentCategory == null || c.CategoryId == search.CurrentCategory) && (search.CurrentClothesType == null || c.ClothesTypeId == search.CurrentClothesType) && (c.Price >= search.MinPrice) && (search.MaxPrice == null || (c.Price >= search.MinPrice && c.Price <= search.MaxPrice)) && (search.CurrentSize == null || c.Sizes.Any(s => s.SizeId == search.CurrentSize)) && ((search.searchName == null || search.searchName == "") || c.Name.ToUpper().Contains(search.searchName.ToUpper()))) .OrderBy(g => g.Price) .Skip((page - 1) * pageSize) .Take(pageSize).ToListAsync(); return(Mapper.Map <List <Goods>, List <GoodsModel> >(goods)); }
public PartialViewResult MenuForAdmin(SearchGoods searchGoods) { IEnumerable <CategoryModel> categories = this._categoryRepository.GetCategories(); ICollection <ClothesTypeModel> clothesTypes = this._typesRepository.GetClothesTypes(); MenuListViewModel mlvm = new MenuListViewModel { Categories = new SelectList(categories, "CategoryId", "Name"), ClothesTypes = clothesTypes, Search = searchGoods }; return(PartialView(mlvm)); }
public async Task <int> UpdateItem(SearchGoods item) { await _elasticClient.UpdateAsync <SearchGoods>(item.no, u => u.Doc(item)); await _elasticClient.UpdateByQueryAsync <SearchGoods>(u => u .Query(q => q .Match(m => m .Field(p => p.goodsNo) .Query(item.goodsNo) )) .Script($"ctx._source.price = {item.price}") .Conflicts(Conflicts.Proceed) .Refresh(true)); await _searchRepository.SaveChangesAsync(); return(0); }
public async Task <ViewResult> GoodsCards(SearchGoods search, int page = 1) { ICollection <GoodsModel> goods = await this._repository.GetGoodsForOnePageAsync(search, pageSize, page); PagingInfo pageInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = await _repository.GetCountGoodsAsync(search) }; GoodsListViewModel model = new GoodsListViewModel() { Goods = goods, PagingInfo = pageInfo, Search = search }; return(View(model)); }