private void StoreAllProductTagsInCache(ProductsQueryRequest queryRequest) { var tags = _productRepository.GetProductTags(queryRequest.Keyword, queryRequest.Category); var productSizeDto = Mapper.Map <IList <ProductTag>, IList <ProductTagDto> >(tags); _cacheManager.Store(CachingConstant.PrductTags, productSizeDto, CachingConstant.MemoryCacheTime); }
public ProductTagsQueryResponse GetPrductTags(ProductsQueryRequest queryRequest) { var response = new ProductTagsQueryResponse(); try { var productTagDto = _cacheManager.Retrieve <IList <ProductTagDto> >(CachingConstant.PrductTags); if (productTagDto != null) { response.Tags = string.IsNullOrWhiteSpace(queryRequest.Keyword) ? productTagDto.ToList() : productTagDto.Where(t => t.Name.Contains(queryRequest.Keyword)).ToList(); } var productTag = _productRepository.GetProductTags(queryRequest.Keyword, queryRequest.Category); productTagDto = Mapper.Map <IList <ProductTag>, IList <ProductTagDto> >(productTag); response.Tags = productTagDto; StoreAllProductTagsInCache(queryRequest); } catch (Exception exception) { response.Failed = true; _logger.Log(exception.Message); } return(response); }
public ProductsQueryResponse SearchInProducts(ProductsQueryRequest request) { var response = new ProductsQueryResponse(); try { var products = _productRepository.SearchInProducts(request, request.Category); if (products == null) { response.Message = ProductQueryMessage.NoResultFound; return(response); } response.Products = Mapper.Map <PagingQueryResponse <Product>, PagingQueryResponse <ProductDto> >(products); } catch (Exception exception) { _logger.Error(exception.Message); } return(response); }
public ProductsQueryResponse GetSpecialProducts(ProductsQueryRequest request) { var response = new ProductsQueryResponse(); try { var products = _productRepository.GetSpecialProducts(request); if (products == null) { response.Message = ProductQueryMessage.NoSpecialProductFound; return(response); } response.Products = Mapper.Map <PagingQueryResponse <Product>, PagingQueryResponse <ProductDto> >(products); } catch (Exception exception) { _logger.Error(exception.Message); response.Message = QueryMessage.RetrievingFailed; } return(response); }
public ProductsQueryResponse GetProductsByStore(ProductsQueryRequest request) { var response = new ProductsQueryResponse(); try { var products = _productRepository.GetProductsByStore(request, request.StoreId); if (products == null) { response.Message = ProductQueryMessage.NoProductFoundForTheStore; return(response); } response.Products = Mapper.Map <PagingQueryResponse <Product>, PagingQueryResponse <ProductDto> >(products); } catch (Exception exception) { response.Failed = true; _logger.Log(exception.Message); } return(response); }
public ProductsQueryResponse GetProductsByTag(ProductsQueryRequest request) { var response = new ProductsQueryResponse(); try { var products = _productRepository.GetProductsByTag(request, request.Category, request.Tag); if (products == null) { response.Message = ProductQueryMessage.NoProductFoundForTheTag; return(response); } response.Products = Mapper.Map <PagingQueryResponse <Product>, PagingQueryResponse <ProductDto> >(products); } catch (Exception exception) { _logger.Error(exception.Message); response.Message = QueryMessage.RetrievingFailed; } return(response); }