private void Crawler_PageResponseReceived(object sender, PageResponseReceivedArgs e)
        {
            Stopwatch timer = e.CrawledPage.PageBag.Timer;

            timer.Stop();
            long responseTime = timer.ElapsedMilliseconds;

            timer.Reset();

            var response = e.HttpWebResponse;

            TestResultDetail item = e.CrawledPage.PageBag.Item;
            double           mean = e.CrawledPage.PageBag.Mean;

            if (e.CrawledPage.PageBag.IsFirst)
            {
                item.Uri = response.ResponseUri.AbsoluteUri;
                ProcessFirstItem(item, responseTime);
            }
            else
            {
                ProcessItem(item, responseTime);
            }
            mean += responseTime / NumberOfRecurrentRequests;

            e.CrawledPage.PageBag.Mean = item.MeanResponseTime = mean;
        }
        private void Crawler_ProcessPageCrawlCompleted(object sender, PageCrawlCompletedArgs e)
        {
            PageToCrawl      pageToCrawl = e.CrawledPage;
            TestResultDetail item        = e.CrawledPage.PageBag.Item;

            lock (mainLock)
            {
                rootMeanResponseTime += item.MeanResponseTime;
                if (item.MinResponseTime < rootMinResponseTime)
                {
                    rootMinResponseTime = item.MinResponseTime;
                }
                if (item.MaxResponseTime > rootMaxResponseTime)
                {
                    rootMaxResponseTime = item.MaxResponseTime;
                }
                ++numberOfPagesCrawled;
            }
            if (!processedPages.ContainsKey(item.Uri))
            {
                resultDetails.Add(item);
                processedPages.TryAdd(item.Uri, 0);
                PageTestingCompleted?.Invoke(this, new PageTestingCompletedArgs(item));
            }
        }
Example #3
0
        // CRUD methods.
        public async Task <OperationDetails> CreateAsync(TestResultDetailDTO item, string userId)
        {
            try
            {
                if (Database.TestResult.Find(o => o.TestResultId == item.TestResultId).FirstOrDefault().UserProfileId == null)
                {
                    return(new OperationDetails(false, "You cannot create a test result detail because you are not authorized.", "TestResultDetail"));
                }
                // Create the new test result.
                TestResultDetail testResultDetail = new TestResultDetail
                {
                    TestResultId   = item.TestResultId,
                    QuestionId     = item.QuestionId,
                    IsProperAnswer = item.IsProperAnswer
                };
                Database.TestResultDetail.Create(testResultDetail);
                await Database.SaveAsync();

                return(new OperationDetails(true, "Test result detail adding completed successfully.", "TestResultDetail"));
            }
            catch (Exception ex)
            {
                return(new OperationDetails(false, ex.Message, "TestResultDetail"));
            }
        }
 public TestResultDetailDTO(TestResultDetail detail)
 {
     Id               = detail.Id;
     Uri              = detail.Uri;
     ResponseTime     = detail.ResponseTime;
     MinResponseTime  = detail.MinResponseTime;
     MaxResponseTime  = detail.MaxResponseTime;
     MeanResponseTime = detail.MeanResponseTime;
     TestResultId     = detail.TestResult.Id;
 }
 private void ProcessItem(TestResultDetail item, long responseTime)
 {
     if (responseTime < item.MinResponseTime)
     {
         item.MinResponseTime = responseTime;
     }
     if (responseTime > item.MaxResponseTime)
     {
         item.MaxResponseTime = responseTime;
     }
 }
Example #6
0
        public async Task <TestResultDetailDTO> GetAsync(int id)
        {
            try
            {
                // AutoMapper Setup.
                var iMapper = BLLAutoMapper.GetMapper;

                TestResultDetail source = await Database.TestResultDetail.GetAsync(id);

                return(iMapper.Map <TestResultDetail, TestResultDetailDTO>(source));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Example #7
0
        List <ITestResultDetail> ImportTestResultDetails(IEnumerable <XElement> testResultDetailElements)
        {
            var importedTestResultDetails = new List <ITestResultDetail>();

            if (null == testResultDetailElements)
            {
                return(importedTestResultDetails);
            }

            foreach (var testResultDetailElement in testResultDetailElements)
            {
                var detail = new TestResultDetail {
                    TextDetail = GetStringAttribute(testResultDetailElement, "name")
                };
                var detailStatus = GetStringAttribute(testResultDetailElement, "status");
                switch (detailStatus.ToUpper())
                {
                case "FAILED":
                    detail.DetailStatus = TestStatuses.Failed;
                    break;

                case "PASSED":
                    detail.DetailStatus = TestStatuses.Passed;
                    break;

                case "KNOWNISSUE":
                    detail.DetailStatus = TestStatuses.KnownIssue;
                    break;

                case "NOTTESTED":
                    detail.DetailStatus = TestStatuses.NotRun;
                    break;

                default:
                    detail.DetailStatus = TestStatuses.NotRun;
                    break;
                }
                // 20160125
                importedTestResultDetails.Add(detail);
            }
            return(importedTestResultDetails);
        }
Example #8
0
 public PageTestingCompletedArgs(TestResultDetail resultDetail)
 {
     ResultDetail = resultDetail;
 }
 public int Insert(TestResultDetail testResultDetail)
 {
     db.TestResultDetails.Add(testResultDetail);
     db.SaveChanges();
     return(testResultDetail.Id);
 }
Example #10
0
 internal static void AddTestResultScreenshotDetail(object detail)
 {
     var testResultDetail = new TestResultDetail();
     
     testResultDetail.AddTestResultDetail(
         TestResultDetailTypes.Screenshot,
         detail.ToString());
     CurrentTestResult.Details.Add(testResultDetail);
     CurrentTestResult.SetScreenshot(detail.ToString());
 }
Example #11
0
 // 20160116
 // internal static void AddTestResultErrorDetail(ErrorRecord detail)
 internal static void AddTestResultErrorDetail(Exception detail)
 {
     var testResultDetail = new TestResultDetail();
     
     testResultDetail.AddTestResultDetail(
         TestResultDetailTypes.ErrorRecord,
         detail);
     CurrentTestResult.Details.Add(testResultDetail);
 }
Example #12
0
//        internal static bool AttachTestResultCode()
//        {
//            bool result = false;
//            
//            
//            
//            return result;
//        }
        
        internal static void AddTestResultTextDetail(ITestResultDetailCmdletBaseDataObject cmdlet, object detail)
        {
            ITestResultDetail testResultDetail = 
                new TestResultDetail();
            
            testResultDetail.AddTestResultDetail(
                TestResultDetailTypes.Comment,
                detail.ToString());
            CurrentTestResult.Details.Add(testResultDetail);
            
            testResultDetail.DetailStatus = cmdlet.TestResultStatus;
            
            switch (cmdlet.TestResultStatus) {
                case TestStatuses.Failed:
                    if (TestStatuses.KnownIssue != CurrentTestResult.enStatus)
                        CurrentTestResult.enStatus = TestStatuses.Failed;
                    break;
                case TestStatuses.Passed:
                    if (TestStatuses.KnownIssue != CurrentTestResult.enStatus &&
                        TestStatuses.Failed != CurrentTestResult.enStatus)
                        CurrentTestResult.enStatus = TestStatuses.Passed;
                    break;
                case TestStatuses.NotRun:
                    // nothing to do
                    break;
                case TestStatuses.KnownIssue:
                    CurrentTestResult.enStatus = TestStatuses.KnownIssue;
                    break;
                default:
//                    cmdlet.WriteVerbose(cmdlet, "TestResultStatus = ????");
//                    cmdlet.WriteVerbose(cmdlet, cmdlet.TestResultStatus.ToString());
                    break;
            }
            
            OnTmxNewTestResultDetailAdded(testResultDetail, null);
            
            if (cmdlet.Finished) {
                
                TmxHelper.TestCaseStarted = DateTime.Now;
                
                // 20130621                
//                TestData.CurrentTestScenario.TestResults.Add(new TestResult(TestData.CurrentTestScenario.Id, TestData.CurrentTestSuite.Id));
//                TestData.CurrentTestScenario.TestResults[TestData.CurrentTestScenario.TestResults.Count - 1] =
//                    TestData.CurrentTestResult;
                // 20130621
                ITestResult newTestResult = new TestResult(CurrentTestScenario.Id, CurrentTestSuite.Id);
                if (CurrentTestResult == CurrentTestScenario.TestResults[CurrentTestScenario.TestResults.Count - 1]) {
                    // autogeneration + Close-TmxTestResult
                    CurrentTestScenario.TestResults.Add(newTestResult);
                    CurrentTestResult = CurrentTestScenario.TestResults[CurrentTestScenario.TestResults.Count - 1];
                } else {
                    // Set-TmxCurrentTestResult + any closing
                    CurrentTestScenario.TestResults.Add(CurrentTestResult);
                    CurrentTestResult = newTestResult;
                }
            }
        }
 private void ProcessFirstItem(TestResultDetail item, long responseTime)
 {
     item.MinResponseTime = item.MaxResponseTime = item.ResponseTime = responseTime;
 }
Example #14
0
 List<ITestResultDetail> ImportTestResultDetails(IEnumerable<XElement> testResultDetailElements)
 {
     var importedTestResultDetails = new List<ITestResultDetail>();
     if (null == testResultDetailElements) return importedTestResultDetails;
     
     foreach (var testResultDetailElement in testResultDetailElements) {
         var detail = new TestResultDetail {
             TextDetail = GetStringAttribute(testResultDetailElement, "name")
         };
         var detailStatus = GetStringAttribute(testResultDetailElement, "status");
         switch (detailStatus.ToUpper()) {
             case "FAILED":
                 detail.DetailStatus = TestStatuses.Failed;
                 break;
             case "PASSED":
                 detail.DetailStatus = TestStatuses.Passed;
                 break;
             case "KNOWNISSUE":
                 detail.DetailStatus = TestStatuses.KnownIssue;
                 break;
             case "NOTTESTED":
                 detail.DetailStatus = TestStatuses.NotRun;
                 break;
             default:
                 detail.DetailStatus = TestStatuses.NotRun;
                 break;
         }
         // 20160125
         importedTestResultDetails.Add(detail);
     }
     return importedTestResultDetails;
 }
Example #15
0
        public ActionResult StartTheTest(Test test)
        {
            var _test          = new TestDAO().GetTestByCodeTest(test.CodeTest, test.ExamID);
            var _testResultDAO = new TestResultDetailDAO();
            var _testResult    = new TestResultDetail();

            if (_test != null)
            {
                _test.UserAnswer = test.UserAnswer;
                _test.ExamID     = test.ExamID;
                _test.CodeTest   = test.CodeTest;
            }
            var _session = Session[ConstantVariable.USER_SESSION] as UserLogin;

            if (_session != null)
            {
                _testResult.UserID = _session.UserID;
            }
            _testResult.TestID = _test.Id;
            _testResult.ExamID = _test.ExamID;
            int _answerCorrectNum = 0;
            int _answerWrongNum   = 0;
            int _answerIgnoredNum = 0;
            var listQuiz          = new TestDAO().GetAllQuiz(_test.Id);

            if (_test.UserAnswer == null || _test.UserAnswer.Count <= 0)
            {
                _answerIgnoredNum = listQuiz.Count;
            }
            else
            {
                for (int i = 0; i < _test.UserAnswer.Count; i++)
                {
                    if (listQuiz[i].KeyAnswer == _test.UserAnswer[i])
                    {
                        _answerCorrectNum++;
                    }
                    else
                    {
                        _answerWrongNum++;
                    }
                }
                _answerIgnoredNum = listQuiz.Count - (_answerCorrectNum + _answerWrongNum);
            }

            _testResult.Score           = _answerCorrectNum * (_test.ScoreLadder.Score / _test.NumberOfQuestions);
            _testResult.NumberOfWrong   = _answerWrongNum;
            _testResult.NumberOfCorrect = _answerCorrectNum;
            _testResult.NumberOfIgnored = _answerIgnoredNum;
            var _countTimeToTake = new TestResultDetailDAO().GetAll(_session.UserID, _test.ExamID);

            if (_countTimeToTake == null)
            {
                _testResult.TimeToTake = 0;
            }
            else
            {
                _testResult.TimeToTake = _countTimeToTake.Count + 1;
            }
            _testResult.ActualTestDate  = DateTime.Now;
            _testResult.ActualStartTime = null;
            _testResult.ActualEndTime   = DateTime.Now.TimeOfDay;
            for (int i = 0; i < listQuiz.Count; i++)
            {
                if (i != listQuiz.Count - 1)
                {
                    _testResult.UserAnswer += _test.UserAnswer[i] + ",";
                }
                else
                {
                    _testResult.UserAnswer += _test.UserAnswer[i];
                }
            }
            int _id = _testResultDAO.Insert(_testResult);

            // Insert
            if (_id > 0)
            {
                var _testDb = new TestDAO().GetTestById(_testResult.TestID);
                new SystemLogDAO().Insert("Người dùng thi online [Kỳ thi: " + _testDb.Exam.Titile + "] [Môn thi: " + _testDb.Exam.Subject.Name + "] [Mã đề: " + _testDb.CodeTest + "]", _session.UserName, DateTime.Now.TimeOfDay, DateTime.Now.Date, GetIPAddress.GetLocalIPAddress());
                return(Redirect("/admin/exams/resultdetail/" + _id));
            }
            return(Redirect("/"));
        }
 public void Add(TestResultDetail detail)
 {
     context.TestResultDetails.Add(detail);
 }