public PresentationWebResourceTestDto GetTest(int testId) { try { PresentationAutomapperConfig.Configure(); WebResourceTest test = this.dataUnit.GetRepository <WebResourceTest>().GetById(testId); PresentationWebResourceTestDto presentationTestResults = new PresentationWebResourceTestDto(); presentationTestResults = Mapper.Map <WebResourceTest, PresentationWebResourceTestDto>(test); presentationTestResults.TotalTestsCount = presentationTestResults.Tests.Sum(res => res.TestsCount); presentationTestResults.TotalWrongTestsCount = presentationTestResults.Tests.Sum(res => res.WrongTestsCount); presentationTestResults.WrongUrls = presentationTestResults.Tests.Where(res => res.WrongTestsCount == res.TestsCount).Count(); presentationTestResults.SuccessfulUrls = presentationTestResults.Tests.Where(res => res.WrongTestsCount == 0).Count(); presentationTestResults.TotalUrls = presentationTestResults.Tests.Count(); return(presentationTestResults); } catch { throw; } }
private void RunSitemapTest(WebResourceTest webResourceTest, IEnumerable <string> urls, int timeout, int testsCount, double interval, CancellationToken token, string connectionId) { this.UrlsFound(connectionId, urls.Count()); for (int i = 0; i < urls.Count(); i++) { if (!token.IsCancellationRequested) { string url = urls.ElementAt(i); TesterTest test = this.tester.Analyzer.GetResult(url, timeout, testsCount); bool saving = this.saver.SaveTestData(webResourceTest, test); if (saving) { this.TestFinished(connectionId, i + 1); } Task.Delay(Convert.ToInt32(interval * 1000)).Wait(); } else { break; } } }
private IList <string> HtmlTest(WebResourceTest webResourceTest, Domain domain, IList <string> urlsForTest, ref List <string> testedUrls, int timeout, double interval, int testsCount, CancellationToken token, string connectionId) { IList <double> responseTimes; DateTime responseDate; IList <string> urls = new List <string>(); IList <string> elementUrls = new List <string>(); foreach (var url in urlsForTest) { if (token.IsCancellationRequested) { break; } elementUrls = htmlTester.GetUrls(url, domain, testsCount, token, out responseTimes, out responseDate); if (token.IsCancellationRequested) { break; } foreach (string elementUrl in elementUrls) { if (!testedUrls.Contains(elementUrl) && !urlsForTest.Contains(elementUrl) && !urls.Contains(elementUrl)) { urls.Add(elementUrl); } } if (!testedUrls.Contains(url)) { TesterTest test = this.tester.Analyzer.GetResult(url, timeout, testsCount - responseTimes.Count()); for (int i = responseTimes.Count() - 1; i >= 0; i--) { test.TestsCount++; test.TestResults.Insert(0, new TesterTestResult() { ResponseTime = responseTimes.ElementAt(i) }); } test.Date = responseDate; bool saving = this.saver.SaveTestData(webResourceTest, test); if (saving) { this.TestFinished(connectionId, testedUrls.Count + 1); } testedUrls.Add(url); Task.Delay(Convert.ToInt32(interval * 1000)).Wait(); } } return(urls); }
public int GetTestId(string url) { url = UrlAdaptor.GetUrl(url); try { WebResourceTest webResourceTest = this.saver.GetNewTest(url); return(webResourceTest.Id); } catch { throw; } }
public void RunHtmlTest(WebResourceTest webResourceTest, int timeout, double interval, int testsCount, CancellationToken token, string connectionId) { string globalUrl = webResourceTest.WebResource.Url; IList <string> urlsToTest = new List <string>(); List <string> testedUrls = new List <string>(); Domain globalDomain = htmlTester.GetUrlDomain(globalUrl); urlsToTest.Add(globalUrl); while ((urlsToTest.Any()) && (!token.IsCancellationRequested)) { this.UrlsFound(connectionId, urlsToTest.Count() + testedUrls.Count()); urlsToTest = this.HtmlTest(webResourceTest, globalDomain, urlsToTest, ref testedUrls, timeout, interval, testsCount, token, connectionId); } }
public WebResourceTest GetNewTest(string url) { try { var webResourceRepository = this.dataUnit.GetRepository <WebResource>(); IEnumerable <WebResource> resources = webResourceRepository.Get((x) => x.Url == url); WebResource resource; if (resources.Any()) { resource = resources.First(); } else { resource = new WebResource() { Url = url, SitemapResources = new List <SitemapResource>(), Tests = new List <WebResourceTest>() }; webResourceRepository.Insert(resource); } WebResourceTest webResourceTest = new WebResourceTest() { Tests = new List <Test>(), Date = DateTime.Now }; resource.Tests.Add(webResourceTest); this.dataUnit.SaveChanges(); return(webResourceTest); } catch { throw; } }
public bool SaveTestData(WebResourceTest webResourceTest, TesterTest test) { EntitiesAutomapperConfig.Configure(); try { Test testEntity = new Test(); testEntity = Mapper.Map <TesterTest, Test>(test); IEnumerable <SitemapResource> sitemaps = webResourceTest.WebResource.SitemapResources.Where((x) => x.Url == test.Url); if (sitemaps.Count() > 0) { testEntity.SitemapResource = sitemaps.First(); } else { SitemapResource sitemap = new SitemapResource() { Url = test.Url, WebResource = webResourceTest.WebResource }; testEntity.SitemapResource = sitemap; } webResourceTest.Tests.Add(testEntity); this.dataUnit.SaveChanges(); return(true); } catch { return(false); } }