public async Task GetAllKeywordsGroupByItemCodeAsync_KeywordsKeys_Test()
        {
            // Given
            var keywords = FakeDataGenerator.CreateDummyKeywords().ToList();

            // When
            var returnedKeywords = await keywordService.GetAllKeywordsGroupByItemCodeAsync();

            // Then
            Assert.NotNull(returnedKeywords);
            Assert.AreEqual(3, returnedKeywords.Keys.Count);
        }
Beispiel #2
0
        /// <summary>
        /// Method returns every items which match item description or category description or has keywords with same value.
        /// </summary>
        /// <param name="description">Value to look for in item description, category and keywords</param>
        /// <returns>All items by match.</returns>
        public async Task <IEnumerable <PimItem> > GetAllItemsByMatchAsync(string description)
        {
            var pimItems = await _itemRepository.GetAll();

            var keywordsByItemSet = await _keywordService.GetAllKeywordsGroupByItemCodeAsync();

            var filteredByCategory = await FilterByCategory(pimItems, description);

            var filteredByKeywords    = FilterByKeywordsMatch(pimItems, description, keywordsByItemSet);
            var filteredByDescription = FilterByItemDescription(pimItems, description);

            var unitedItems = filteredByDescription
                              .Union(filteredByKeywords)
                              .Union(filteredByDescription);

//            unitedItems.ToList().ForEach(i => _categoryService.GetItemGroupsByNo(i));
            var allFeatures = await _featuresService.GetAllFeatures();

            foreach (var item in unitedItems)
            {
                item.PimFeatures = await _featuresService.GetFeaturesByNoAsync(item.No, allFeatures);
            }

            return(unitedItems);
        }