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)); } }
// 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; } }
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); } }
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); }
public PageTestingCompletedArgs(TestResultDetail resultDetail) { ResultDetail = resultDetail; }
public int Insert(TestResultDetail testResultDetail) { db.TestResultDetails.Add(testResultDetail); db.SaveChanges(); return(testResultDetail.Id); }
internal static void AddTestResultScreenshotDetail(object detail) { var testResultDetail = new TestResultDetail(); testResultDetail.AddTestResultDetail( TestResultDetailTypes.Screenshot, detail.ToString()); CurrentTestResult.Details.Add(testResultDetail); CurrentTestResult.SetScreenshot(detail.ToString()); }
// 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); }
// 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; }
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; }
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); }