public async Task <int> AddTestResults(TestResultsAdditionDTO dto) { var site = (await _siteRepository.GetByAsync(s => s.SiteUrl == dto.SiteUrl)).FirstOrDefault(); if (site == null) { var newSite = Site.Create(dto.SiteUrl); await _siteRepository.CreateAsync(newSite); var testResults = TestResult.Create(); newSite.AddTestResults(testResults); foreach (var urlResponseTime in dto.UrlResponseTimes) { var siteMapUrl = SiteMapUrlResponseTime.Create(urlResponseTime.Url, urlResponseTime.ResponseTimeMilliseconds); testResults.AddSiteMapUrlResponse(siteMapUrl); } await _siteRepository.SaveChangesAsync(); return(newSite.Id); } else { var testResults = TestResult.Create(); site.AddTestResults(testResults); foreach (var urlResponseTime in dto.UrlResponseTimes) { var siteMapUrl = SiteMapUrlResponseTime.Create(urlResponseTime.Url, urlResponseTime.ResponseTimeMilliseconds); testResults.AddSiteMapUrlResponse(siteMapUrl); } await _siteRepository.SaveChangesAsync(); return(site.Id); } }
public async Task <IActionResult> CreateTestResults([FromBody] TestResultsAdditionDTO request) { var idSite = await _testHistoryService.AddTestResults(request); return(Ok(idSite)); }