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

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

            // Then
            Assert.NotNull(returnedKeywords);
            Assert.AreEqual(keywords.Count, returnedKeywords.ToList().Count);
            Assert.AreNotEqual(1, returnedKeywords.ToList().Count);
        }
Beispiel #2
0
        /// <summary>
        /// Find similar items in by description using Levenshtein distance.
        /// </summary>
        /// <param name="description">Description.</param>
        /// <returns>Description of similar item.</returns>
        public async Task <string> FindSimilarItemsByDescription(string description)
        {
            var pimItems = await _itemRepository.GetAll();

            var keywords = await _keywordService.GetAllKeywordsAsync();

            var groups = await _categoryService.GetAllItemGroupAsync();

            var groupsProduct = await _categoryService.GetAllProductGroupAsync();

            var unitedItems = pimItems.Select(i => i.Description)
                              .Union(keywords.Select(k => k.Keyword))
                              .Union(groups.Select(g => g.Description))
                              .Union(groupsProduct.Select(g => g.Description))
                              .ToList();

            var orderedItems = unitedItems.OrderBy(i => CommonUtil.ComputeLevenshteinDistance(i, description)).ToList();

            if (orderedItems != null)
            {
                return(orderedItems[0]);
            }

            return(null);
        }