Beispiel #1
0
        public async Task <ProductCardForEditAndFilters> GetProductCardForEditAndFiltersAsync(FilterBaseAndSearch filters)
        {
            ProductCardForEditAndFilters result = new ProductCardForEditAndFilters()
            {
                Filters         = filters,
                SearchEnumArray = searchEnumArrayProducts,
                SortEnumArray   = sortEnumArrayProducts
            };
            string keyName           = $"ProductListFilter{filters.GetFilterName()}",
                   keyNameAllProduct = $"ProductListALll",
                   desired           = filters.Desired;
            var products             = _cacheService.Get <List <ProductCardForEdit> >(keyName);

            if (products == null || products.Count == 0)
            {
                products = _cacheService.Get <List <ProductCardForEdit> >(keyNameAllProduct);
                if (products == null || products.Count == 0)
                {
                    products = await _fcdStoreContext.GetStProductCardAsync();

                    _cacheService.Set <List <ProductCardForEdit> >(keyNameAllProduct, products);
                }
                if (desired != null && filters.WhereSearch != null)
                {
                    switch (Enum.Parse(typeWhereSearchProductsSt, filters.WhereSearch))
                    {
                    case (StProductSearchs.По_Id):
                    {
                        products = FindProductsForId(products, desired);
                        break;
                    }

                    case (StProductSearchs.По_Названию):
                    {
                        products = FindProductsForName(products, desired);
                        break;
                    }

                    default:
                    {
                        break;
                    }
                    }
                }
                result.ProductCards = products;
                _dataFiltering.Filtering(result);
                products = result.ProductCards;
                _cacheService.Set <List <ProductCardForEdit> >(keyName, products);
            }
            result.ProductCards = products;
            _dataFiltering.SetFilters(result);
            if (result.ProductCards.Count > 0)
            {
                result.ProductCards = _dataFiltering.Paginator <ProductCardForEdit>(result.ProductCards, (int)filters.CountVisablePositions, (int)filters.CurrentPosition);
            }
            return(result);
        }
Beispiel #2
0
        //------------------------------
        public async Task <IActionResult> ProductsView(string whereSearch,
                                                       string desired,
                                                       string sortType,
                                                       int?currentPosition,
                                                       string select)
        {
            FilterBaseAndSearch filters = new FilterBaseAndSearch(desired: desired,
                                                                  whereSearch: whereSearch,
                                                                  countVisablePositions: 3,
                                                                  currentPosition: currentPosition,
                                                                  selectFromSelectList: select,
                                                                  sortType: sortType);
            ProductCardForEditAndFilters result = await _dataProcessingConveyor.GetProductCardForEditAndFiltersAsync(filters);

            return(View(result));
        }