public IDictionary <string, int> GetMetaTasDetails(SEOParams seoParams) { var keyWords = default(string); var words = default(IEnumerable <string>); var htmlDoc = _webParserProvider.ParseWebToHtmlDoc(new Uri(seoParams.SearchText)); HtmlNodeCollection htmlMetaTags = htmlDoc.DocumentNode.SelectNodes("//meta"); foreach (HtmlNode node in htmlMetaTags) { if (node.GetAttributeValue("name", "").ToLower() == "keywords") { keyWords = node.GetAttributeValue("content", ""); if (!string.IsNullOrEmpty(keyWords)) { words = Util.SplitSentenceToWords(keyWords); if (seoParams.IsStopWord) { string JsonStopWordsText = File.ReadAllText(seoParams.SpotWordsPath); IList <string> WordsFromFile = JsonConvert.DeserializeObject <IList <string> >(JsonStopWordsText); words = words.Where(w => !WordsFromFile.Contains(w)); } } } } return(Util.OccurenceOfwords(words)); }
public async Task <JsonResult> AnalyseData(SEOParams seoParams) { try { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri(AppConfig.BaseUri); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var content = new StringContent(JsonConvert.SerializeObject(seoParams), Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(AppConfig.URIPart, content); if (response.IsSuccessStatusCode) { var contents = response.Content.ReadAsStringAsync().Result; return(Json(new { ResponseCode = response.IsSuccessStatusCode, Content = JsonConvert.DeserializeObject(contents) }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { ResponseCode = response.IsSuccessStatusCode, Content = "Error Occurred please try again." }, JsonRequestBehavior.AllowGet)); } } } catch (Exception ex) { Log.Logger.Error("Client App Error {method = AnalyseData}", ex); return(Json(new { ResponseCode = false, Content = "Error Occurred please try again." }, JsonRequestBehavior.AllowGet)); } }
public SEOData GetDetails(SEOParams seoParams) { var parser = _builder.Build(seoParams.SearchText); _data.LinksCount = seoParams.IsExternalLinks ? parser.GetExternalLinks(seoParams.SearchText) : new Dictionary <string, int>(); _data.MetatagsCount = seoParams.IsMetaTags ? parser.GetMetaTasDetails(seoParams) : new Dictionary <string, int>(); _data.WordsCount = seoParams.IsWordCount ? parser.GetWordsDetails(seoParams) : new Dictionary <string, int>(); return(_data); }
public IHttpActionResult Analyse(SEOParams seoParams) { try { Logger.Debug($"Post Api called sucess on {DateTime.Now}"); seoParams.SpotWordsPath = HttpContext.Current.Server.MapPath(@Constant.SpotWordsPath); var data = _analyserManager.GetDetails(seoParams); return(Ok(JsonConvert.SerializeObject(data))); } catch (Exception ex) { Logger.Error("Post Api Error {method = Analyse}", ex); return(InternalServerError()); } }
public IDictionary <string, int> GetWordsDetails(SEOParams seoParams) { string webText = _webParserProvider.ParseWebToText(new Uri(seoParams.SearchText)); IEnumerable <string> words = Util.SplitSentenceToWords(webText.ToLower()); if (seoParams.IsStopWord) { string JsonStopWordsText = File.ReadAllText(seoParams.SpotWordsPath); IList <string> WordsFromFile = JsonConvert.DeserializeObject <IList <string> >(JsonStopWordsText); words = words.Where(w => !WordsFromFile.Contains(w)); } return(Util.OccurenceOfwords(words)); }
public IDictionary <string, int> GetWordsDetails(SEOParams seoParams) { var words = Util.SplitSentenceToWords(seoParams.SearchText.ToLower()); if (seoParams.IsStopWord) { var JsonStopWordsText = File.ReadAllText(seoParams.SpotWordsPath); var WordsFromFile = JsonConvert.DeserializeObject <IList <string> >(JsonStopWordsText); words = words.Where(w => !WordsFromFile.Contains(w)); } return(Util.OccurenceOfwords(words)); }
public void GetDetialsFromText(bool isExternalLinks, bool isMetaTags, bool isWordCount, bool isStopWord, string searchText, string spotWordsPath, int linkcount, int metaTagsCount, int wordsCount) { var anaysler = new AnalyserManager(new SEOBuilderFactory(new WebParserProvider())); var @params = new SEOParams() { IsExternalLinks = isExternalLinks, IsMetaTags = isMetaTags, IsWordCount = isWordCount, IsStopWord = isStopWord, SearchText = searchText, SpotWordsPath = spotWordsPath }; var result = anaysler.GetDetails(@params); Assert.AreEqual(result.LinksCount.Count, linkcount); Assert.AreEqual(result.MetatagsCount.Count, metaTagsCount); Assert.AreEqual(result.WordsCount.Count, wordsCount); }
public void GetDeatilsFromUrl(bool isExternalLinks, bool isMetaTags, bool isWordCount, bool isStopWord, string searchText, string spotWordsPath, int linkcount, int metaTagsCount, int wordsCount) { var @params = new SEOParams() { IsExternalLinks = isExternalLinks, IsMetaTags = isMetaTags, IsWordCount = isWordCount, IsStopWord = isStopWord, SearchText = searchText, SpotWordsPath = spotWordsPath }; var data = new SEOData(); var mockwebParserProvider = Substitute.For <IWebParserProvider>(); var SEOAnalyserProvider = Substitute.For <ISEOAnalyserProvider>(); var mockSEOBuilderFactory = Substitute.For <ISEOBuilderFactory>(); IDictionary <string, int> linksCount = new Dictionary <string, int>(); linksCount.Add("hello", 1); linksCount.Add("batman", 10); IDictionary <string, int> metaTags = new Dictionary <string, int>(); metaTags.Add("animal", 1); metaTags.Add("design", 1); SEOAnalyserProvider.GetExternalLinks(@params.SearchText).Returns(linksCount); SEOAnalyserProvider.GetMetaTasDetails(@params).Returns(metaTags); SEOAnalyserProvider.GetWordsDetails(@params).Returns(new Dictionary <string, int>()); mockSEOBuilderFactory.Build(@params.SearchText).Returns(SEOAnalyserProvider); var AnalyserManager = new AnalyserManager(mockSEOBuilderFactory, data); var result = AnalyserManager.GetDetails(@params); Assert.AreEqual(result.LinksCount.Count, linksCount.Count); Assert.AreEqual(result.MetatagsCount.Count, metaTags.Count); }
public IDictionary <string, int> GetMetaTasDetails(SEOParams seoParams) { return(new Dictionary <string, int>()); }