Beispiel #1
0
        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;
            }
        }