public List <TopicDto> GetFeeds() { try { var feeds = _rssClient.GetFeeds(); List <FeedDto> feedsMap = new List <FeedDto>(); foreach (var item in feeds) { item.FullMessageClean = ClearSentenceUtil.ClearSentence(string.Concat(item.Title, " ", item.Description, " ", string.Join(", ", item.Categories))); feedsMap.Add(_mapper.Map <FeedDto>(item)); } List <string> words; List <WordDto> wordsRecurrence; List <TopicDto> topics = new List <TopicDto>(); foreach (var item in feedsMap) { wordsRecurrence = new List <WordDto>(); words = item.FullMessageClean.Split(' ').ToList(); foreach (var word in words) { if (!wordsRecurrence.Any(w => w.Word == word)) { wordsRecurrence.Add(new WordDto() { Word = word, Amount = WordUtil.CountRecurrence(word, words) }); } } topics.Add(new TopicDto() { Title = item.Title, TotalWords = wordsRecurrence.Count(), TopWords = wordsRecurrence.OrderByDescending(w => w.Amount).Take(10).ToList(), CleanerText = item.FullMessageClean }); } return(topics); } catch (Exception ex) { throw ex; } }