private void CountWords(LoadUrlModel model)
        {
            var nodes = document.DocumentNode.SelectNodes("//text()");

            foreach (HtmlNode node in nodes)
            {
                string s = node.InnerText;
                if (!string.IsNullOrWhiteSpace(s) && s.Length > 0)
                {
                    s = s.ToLower();
                    string[] words = s.Split(" ");
                    foreach (string word in words)
                    {
                        if (!string.IsNullOrWhiteSpace(word) && IsAlphaNum(word))
                        {
                            if (model.WordCounts.ContainsKey(word))
                            {
                                model.WordCounts[word]++;
                            }
                            else
                            {
                                model.WordCounts.Add(word, 1);
                            }
                            model.WordCount++;
                        }
                    }
                }
            }
            // Sort by count, descending
            model.WordCounts = model.WordCounts.OrderByDescending(d => d.Value)
                               .ToDictionary(x => x.Key, x => x.Value);
        }
        public LoadUrlModel GetUrlModel(string url)
        {
            LoadUrlModel model = new LoadUrlModel();

            document        = CacheDocument(url);
            model.ImageList = GetAllImages(url);
            CountWords(model);

            return(model);
        }
        public IActionResult LoadUrl(IndexModel indexModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            LoadUrlModel model = _urlAnalyzerService.GetUrlModel(indexModel.Url);

            return(View(model));
        }