public async Task <IActionResult> ProductsList(string sortType, bool?onlySale, bool?onlyAvailability, int?minPrice, int?maxPrice, int?currentPosition, string select) { if (select != null) { FilterProductCard filters = new FilterProductCard(onlyAvailability: onlyAvailability, onlySale: onlySale, minPrice: minPrice, maxPrice: maxPrice, selectFromSelectList: select, countVisablePositions: 3, currentPosition: currentPosition, sortType: sortType ); string loadCurrentPosition = _session.GetString("CurrentPositionProduct"); if (loadCurrentPosition != null) { filters.CurrentPosition = Convert.ToInt32(loadCurrentPosition); _session.Remove("CurrentPositionProduct"); } var result = await _dataProcessingConveyor.GetProductCardAndBasketAndFiltersAsync(filters); return(View(result)); } return(NotFound()); }
public async Task <IActionResult> Search(string whereSearch, string desired, string sortType, bool?onlySale, bool?onlyAvailability, int?minPrice, int?maxPrice, int?currentPosition, string select) { if (desired != null) { if (desired.Length >= 3) { FilterProductCard filters = new FilterProductCard(onlyAvailability: onlyAvailability, onlySale: onlySale, minPrice: minPrice, maxPrice: maxPrice, selectFromSelectList: select, countVisablePositions: 3, currentPosition: currentPosition, sortType: sortType, desired: desired, whereSearch: whereSearch ); string loadCurrentPosition = _session.GetString("CurrentPositionProduct"); if (loadCurrentPosition != null) { filters.CurrentPosition = Convert.ToInt32(loadCurrentPosition); _session.Remove("CurrentPositionProduct"); } ProductCardAndBasketAndFilters result = await _dataProcessingConveyor.GetFilteringProductCardAndBasketAndFiltersAsync(filters); if (result != null) { return(View(result)); } } else { return(Redirect(Request.Headers["Referer"].ToString())); } } return(NotFound()); }
public async Task <IActionResult> SearchAjax(string whereSearch, string desired, string sortType, bool?onlySale, bool?onlyAvailability, int?minPrice, int?maxPrice, int?currentPosition, string select) { if (desired != null) { Type typeWhereSearch = typeof(WhereSearch); FilterProductCard filters = new FilterProductCard(onlyAvailability: onlyAvailability, onlySale: onlySale, minPrice: minPrice, maxPrice: maxPrice, selectFromSelectList: select, countVisablePositions: 3, currentPosition: currentPosition, sortType: sortType, desired: desired, whereSearch: whereSearch ); var result = await _dataProcessingConveyor.GetFilteringProductCardAndBasketAndFiltersAsync(filters); return(new JsonResult(result.ProductCards.Select(t => new { jsId = t.Id, jsName = t.Name, jsProductTypeId = t.ProductTypeId, jsParentProductTypeId = t.ParentTypeId, jsMainPicturePath = t.MainPicturePath, jsMainAttribute = t.MainAttribute, jsPrice = t.Price, jsSale = t.Sale, jsHexColor = t.HexColor, jsCurrentPosition = currentPosition }).ToList())); } return(NotFound()); }
public async Task <ProductCardAndBasketAndFilters> GetFilteringProductCardAndBasketAndFiltersAsync(FilterProductCard filters) { ProductCardAndBasketAndFilters result = new ProductCardAndBasketAndFilters { SearchEnumArray = searchEnumArray, SortEnumArray = sortEnumArray, Filters = filters }; int currentPosition = (int)filters.CurrentPosition; string keyName = $"ProductCardsForSearch:{filters.GetFilterName()}", desired = filters.Desired.ToLower(); List <ProductCard> productCards = _cacheService.Get <List <ProductCard> >(keyName); if (productCards == null) { switch (Enum.Parse(typeWhereSearchProduct, filters.WhereSearch)) { case (WhereSearch.По_названии): { productCards = await _fcdStoreContext.GetProductCardsSearchNameAsync(desired, currentPosition); break; } case (WhereSearch.В_атрибутах): { productCards = await _fcdStoreContext.GetProductCardsSearchAttributesAsync(desired, currentPosition); break; } case (WhereSearch.В_описании): { productCards = await _fcdStoreContext.GetProductCardsSearchDescriptionsAsync(desired, currentPosition); break; } case (WhereSearch.Везде): { productCards = await _fcdStoreContext.GetProductCardsSearchAllAsync(desired, currentPosition); break; } default: { productCards = await _fcdStoreContext.GetProductCardsSearchNameAsync(desired, currentPosition); break; } } result.ProductCards = productCards; _dataFiltering.Filtering(result); productCards = result.ProductCards; _cacheService.Set <List <ProductCard> >(keyName, productCards); } result.ProductCards = productCards; _dataFiltering.SetFilters(result); result.ProductCards = _dataFiltering.Paginator <ProductCard>(result.ProductCards, (int)filters.CountVisablePositions, currentPosition); result.ProductsInBasket = await GetProductsInBasketAsync(); result.SetBasketsCost(); return(result); }
public async Task <ProductCardAndBasketAndFilters> GetProductCardAndBasketAndFiltersAsync(FilterProductCard filters) { ProductCardAndBasketAndFilters result = new ProductCardAndBasketAndFilters { SearchEnumArray = searchEnumArray, SortEnumArray = sortEnumArray, Filters = filters }; string keyName = $"ProductCards:{filters.GetFilterName()}"; List <ProductCard> productCards = _cacheService.Get <List <ProductCard> >(keyName); if (productCards == null) { productCards = await _fcdStoreContext.GetProductCardsAsync(filters.SelectFromSelectList, (int)filters.CurrentPosition); result.ProductCards = productCards; _dataFiltering.Filtering(result); productCards = result.ProductCards; _cacheService.Set <List <ProductCard> >(keyName, result.ProductCards); } result.ProductCards = productCards; _dataFiltering.SetFilters(result); result.ProductCards = _dataFiltering.Paginator <ProductCard>(result.ProductCards, (int)filters.CountVisablePositions, (int)filters.CurrentPosition); result.ProductsInBasket = await GetProductsInBasketAsync(); result.SetBasketsCost(); return(result); }