コード例 #1
0
        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));
        }