コード例 #1
0
        public LatestTestResultDto Save(LatestTestResultDto latestTestResultDto, TestResultType testResultType, DateTime utcNow)
        {
            var dbLatestTestResult = _db.LatestTestResults
                                     .SingleOrDefault(t =>
                                                      t.SuiteId == latestTestResultDto.SuiteId &&
                                                      t.TestId == latestTestResultDto.TestId
                                                      );

            var suiteNameChanged = false;

            if (dbLatestTestResult == null)
            {
                dbLatestTestResult = new DbLatestTestResult
                {
                    SuiteId   = latestTestResultDto.SuiteId,
                    TestId    = latestTestResultDto.TestId,
                    TestName  = latestTestResultDto.TestName,
                    SuiteName = latestTestResultDto.SuiteName
                }
            }
            ;
            else if (dbLatestTestResult.SuiteName != latestTestResultDto.SuiteName)
            {
                dbLatestTestResult.SuiteName = latestTestResultDto.SuiteName;
                suiteNameChanged             = true;
            }

            if (testResultType == TestResultType.Pass && dbLatestTestResult.PassingFromDateTime == null)
            {
                dbLatestTestResult.TestResultId        = latestTestResultDto.TestResultID;
                dbLatestTestResult.PassingFromDateTime = utcNow;
                dbLatestTestResult.FailingFromDateTime = null;
                SaveLatestTestResult(dbLatestTestResult);
            }
            else if ((testResultType == TestResultType.Fail || testResultType == TestResultType.Inconclusive) &&
                     dbLatestTestResult.FailingFromDateTime == null)
            {
                dbLatestTestResult.TestResultId        = latestTestResultDto.TestResultID;
                dbLatestTestResult.FailingFromDateTime = utcNow;
                dbLatestTestResult.PassingFromDateTime = null;
                SaveLatestTestResult(dbLatestTestResult);
            }
            else if (suiteNameChanged)
            {
                SaveLatestTestResult(dbLatestTestResult);
            }

            // todo: move to mapping class
            return(new LatestTestResultDto
            {
                LatestTestResultID = dbLatestTestResult.LatestTestResultID,
                TestResultID = dbLatestTestResult.TestResultId,
                SuiteId = dbLatestTestResult.SuiteId,
                TestId = dbLatestTestResult.TestId,
                TestName = dbLatestTestResult.TestName,
                SuiteName = dbLatestTestResult.SuiteName,
                PassingFromDate = dbLatestTestResult.PassingFromDateTime,
                FailingFromDate = dbLatestTestResult.FailingFromDateTime
            });
        }
コード例 #2
0
        public TestFailureDurationDto Save(TestFailureDurationDto testFailureDurationDto, TestResultType testResultType, DateTime utcNow)
        {
            var latestDbTestFailedDuration = _db.TestFailureDurations
                                             .OrderByDescending(f => f.FailureStartDateTime)
                                             .FirstOrDefault(f =>
                                                             f.SuiteId == testFailureDurationDto.SuiteId &&
                                                             f.TestId == testFailureDurationDto.TestId
                                                             );

            if (testResultType == TestResultType.Pass &&
                latestDbTestFailedDuration != null &&
                latestDbTestFailedDuration.FailureStartDateTime != null && latestDbTestFailedDuration.FailureEndDateTime == null)
            {
                latestDbTestFailedDuration.TestResultId       = testFailureDurationDto.TestResultId;
                latestDbTestFailedDuration.FailureEndDateTime = utcNow;
                SaveTestFailedDuration(latestDbTestFailedDuration);
                return(Map(latestDbTestFailedDuration));
            }
            else if (testResultType == TestResultType.Fail || testResultType == TestResultType.Inconclusive)
            {
                if (latestDbTestFailedDuration == null || latestDbTestFailedDuration.FailureEndDateTime != null)
                {
                    var newDbTestFailedDuration = new DbTestFailureDuration
                    {
                        SuiteId              = testFailureDurationDto.SuiteId,
                        TestId               = testFailureDurationDto.TestId,
                        TestResultId         = testFailureDurationDto.TestResultId,
                        FailureStartDateTime = utcNow
                    };
                    SaveTestFailedDuration(newDbTestFailedDuration);
                    return(Map(newDbTestFailedDuration));
                }
            }

            return(null);
        }